【发布时间】:2021-11-14 05:30:40
【问题描述】:
我正在尝试向名为“hasAddresses”的区域表添加一个新的布尔字段,如果该区域至少存在 1 个地址,则该字段应为 true,否则应为 false。
问题 - 它将所有字段更改为 true
class AddhasAdressesSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
$addressesareasIds=Address::get('areaId');
$areas=Area::get();
foreach ($areas as $area){
$area=Area::get('id');
$exists=Address::exists($addressesareasIds,$area);
if($exists)
DB::table('areas')->update([
'hasAddresses' => true
]);
}
}
}
【问题讨论】:
-
您可能正在寻找 whereExists 来查询关系laravel.com/docs/8.x/queries#where-exists-clauses
-
如果您定义了关系,那么您的查询可能会简化为
Area::has('address')->update([ 'hasAddresses' => true ])而不是整个代码