我想用一个查询更新两个表,但我找不到怎么做?
$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'
有人有任何建议吗?
提前致谢。
答案 0 :(得分:0)
我担心除了使用DB :: raw()编写自定义查询之外没有其他方法;
即使您添加了JOIN方法,laravel在更新时也不包括查询中的连接。我不是百分之百确定原因,但它与不同数据库引擎之间的差异有关。
更新
虽然看起来像laravel 4将具有此功能https://github.com/laravel/framework/commit/57e11e392447206f60d77b33c0646229842315a3
刚刚将它添加到我的laravel应用程序中并且它有效!