laravel - 如何在 Eloquent 数据透视表上设置额外字段的值

标签 laravel laravel-4 eloquent

$recourse->pivot->field = '值';

给出错误:间接修改重载属性

最佳答案

pivot 仅在关系上下文中可用:

// won't work
$model = Model::first();
$model->pivot; // null

// will work
$anotherModel = AnotherModel::first();
$relatedModel = $anotherModel->relation()->first();
$relatedModel->pivot; // Pivot object

但是对于您想要做的事情,只需在 save 方法中使用附加参数即可:

$product = Product::find($item->id);
$order->product()->save($product, ['price' => 12.34]);

对于现有关系:

$product = $order->product()->find($productId);
$product->pivot->price = 12.34;
$product->pivot->save();

// or
$order->product()->updateExistingPivot($productId, ['price'=>12.34]);

我建议您使用products来表示这种关系,以便于阅读。

关于laravel - 如何在 Eloquent 数据透视表上设置额外字段的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24425819/

相关文章:

mysql - 使用 Eloquent 加入 Laravel 4

php - Laravel:第 384 行的 vendor/laravel/framework/src/Illuminate/Support/Arr.php 中的语法错误

php - 使用 php 在 mysql 中插入一百万行时如何防止内存不足

laravel - 如何修复 "Table ' database.teches' does not exist” 错误?

authentication - 如何通过 API Laravel 处理用户注册

php - 当从数据库中检索 Eloquent 模型时执行代码

php - Laravel 5 更新所有 Pivot 条目

laravel - 使用 Eloquent Data Laravel 显示表格表单

laravel-5 - 通过关联表在 Laravel 5.1 中按距离排序

php - Laravel 根据另一个表中的 user_id 获取用户名