![](/img/trans.png)
[英]Update single or multiple row with data from another row in the different table
[英]Update row with data from another row in the same table in Laravel
我正在嘗試在數據庫中更新一行。 我找不到解決辦法。
我有一個父行和一個子行。 我想用CHILD活動(草稿)更新PARENT活動。
在我的控制器中:
public function update(UpdateRequest $request)
{
if (Auth::user()->hasRole('Administrateur'))
{
// DRAFT ACTIVITY
$id = $request->id;
$activity = Activity::find($id);
// PARENT ACTIVITY
$parent_id = $activity->parent_id;
$parent_activity = Activity::find($parent_id);
DB::table('activities')->???
}
}
你能幫助我嗎 ? 非常感謝你 !
最簡單的方法是在Activity
模型上使用update
方法,並將新數據作為參數傳遞給它。
例如:
$parent_activity->update([
'someProperty' => $activity->someProperty,
...
]);
不要忘記通過向Activity
模型中添加受保護的屬性$fillable
來啟用批量分配 。
要將所有數據復制到$parent_activity
,可以執行以下操作:
$someData = $activity->toArray();
$parent_activity->update($someData);
請注意,您僅更新所需的屬性,而不要說parent_id
。 您可以使用array_except()
幫助器來防止這種情況。
$someData = array_except($activity->toArray(), ['parent_id']);
$parent_activity->update($someData);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.