laravel流畅更新两张桌子

时间:2013-02-14 13:48:50

标签: laravel

我想用一个查询更新两个表,但我找不到怎么做?

    $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'

有人有任何建议吗?

提前致谢。

1 个答案:

答案 0 :(得分:0)

我担心除了使用DB :: raw()编写自定义查询之外没有其他方法;

即使您添加了JOIN方法,laravel在更新时也不包括查询中的连接。我不是百分之百确定原因,但它与不同数据库引擎之间的差异有关。

更新

虽然看起来像laravel 4将具有此功能https://github.com/laravel/framework/commit/57e11e392447206f60d77b33c0646229842315a3

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