【发布时间】:2017-05-17 21:36:00
【问题描述】:
我一直在努力思考如何更新我的 hasMany 关系模型。我可以轻松地创建新的关系,但是当我尝试更新我的关系模型时它不起作用? laravel push() 方法仍然有效吗?有人可以帮忙吗?例如,我想更新与控制器中的产品表相关的分类表。我在下面有一个代码 sn-p::
Product.php
class Product extends Model
{
protected $fillable = [
'product_category', 'product_subcategory', 'product_name',
'product_price', 'product_id', 'product_description', 'product_image'
];
protected $primaryKey = 'product_id';
public $incrementing = false;
public function addTaxonomiesToProduct()
{
return $this->hasOne('App\Taxonomies', 'product_id', 'product_id');
}
}
Taxonomies.php
class Taxonomies extends Model
{
protected $fillable = ['product_category', 'product_subcategory'];
protected $primaryKey = 'product_id'; // or null
public $incrementing = false;
public function product()
{
return $this->belongsTo(Product::class);
}
}
EditProductController.php
class EditProductController extends Controller
{
public function update(Request $request, Product $product)
{
$product_size = array();
foreach ($request->product_size as $key => $value)
{
array_push($product_size,$value);
}
$product->update([
'product_name' => $request->product_name,
'product_price' => $request->product_price,
'product_description' => $request->product_description,
'product_size' => serialize($product_size),
'product_image' => $product_image_path,
]);
/**
* Go the products table,
* Get the product based off its product_id,
* and then update this products taxonomy
**/
$taxonomies = Product::find($product->product_id);
$taxonomies->addTaxonomiesToProduct->product_subcategory = "Mens Shoes";
$taxonomies->push();
}
}
****更新问题已解决**** 通过将 Products 表中的 hasMany() 更改为 hasOne(),我的分类表已正确更新。
【问题讨论】:
-
@Ross Wilson,非常感谢你帮我缩进!!!
-
一个产品是有一个
Taxonomies还是可以有更多? -
@Ross Wilson,一个产品可以有多个分类法
-
好的,那么你怎么知道你想编辑哪个
Taxonomies?还是要全部更新? -
@Ross Wilson,我正在使用 product_id 作为父表(产品),在我的分类表中我也有一个 product_id。使用这个独特的 product_id,我想编辑匹配的分类列 (product_category)
标签: php laravel laravel-5.2 laravel-5.3