我需要为每个关系添加字段,例如$ record-> lists(),并且对于每个列表我需要添加额外字段 - 我想知道是否有办法通过使用一些闭包魔术来实现它,或者如果我应该预先安排阵列。
修改
当前解决方案
$relatedLists = $item->lists()->with([
'user' => function($query){ $query->select('nickname', 'id');}
])->get();
foreach( $relatedLists as $index => $list) {
$rating = $item->ratingsByUserId($list->user_id)->first();
$relatedLists[$index]->rated_by_user = empty($rating) ? 0 : $rating->rated;
}
答案 0 :(得分:0)
对于多对多关系,您可以使用attach()
方法并传递数据透视表中定义的其他值数组
$record->lists()->attach([
1 => ['extrafield' => 'extravalue1'],
2 => ['extrafield' => 'extravalue2'],
]);
上面的代码将带有ID 1
和2
的列表附加到记录中,并相应地将字段值设置为'extravalue1'
和'extravalue2'
。
答案 1 :(得分:0)
您可以使用from zlib import compress, decompress
from base64 import b64encode
DATA_comp = compress(DATA.encode())
DATA_enc = b64encode(DATA_comp)
cmd = b'\x02' + DATA_enc + b'\x03'
变量在模型中添加额外属性(不在表中作为字段)。您还可以为这些附加属性创建变换器。
实施例
appends