2

我有两个表我想用一个查询更新,但我找不到如何做到这一点?

    $update = DB::table('users')
        ->join('addresses', 'users.id', '=', 'addresses.user_id')
        ->where('id', '=', Auth::user()->id)
        ->update(array(
            'firstname' =>  $userDetails['firstname'],
            'lastname'  =>  $userDetails['lastname'],
            'email'     =>  $userDetails['email'],
            'password'  =>  $userDetails['password'],
            'addresses.add_line1'       =>  $userDetails['addl1'],
            'addresses.add_line2'       =>  $userDetails['addl2'],
            'addresses.town'            =>  $userDetails['town'],
            'addresses.county'      =>  $userDetails['county'],
            'addresses.post_code'       =>  $userDetails['postcode']

        ));

    dd($update);

但我得到这个返回

    SQLSTATE[42S22]: Column not found: 1054 Unknown column 'add_name_no' in 'field list'

有人有什么建议吗?

提前致谢。

4

1 回答 1

0

除了使用 DB::raw(); 编写自定义查询之外,恐怕没有简单的方法可以解决这个问题。

即使您添加了 JOIN 方法,laravel 更新时也不会在查询中包含 join。我不是 100% 确定原因,但这与不同数据库引擎之间的差异有关。

更新

虽然看起来 laravel 4 会有这个功能https://github.com/laravel/framework/commit/57e11e392447206f60d77b33c0646229842315a3

刚刚将它添加到我的 laravel 应用程序中,它很有效!

于 2013-05-14T12:27:20.437 回答