簡體   English   中英

如何更新Laravel有很多關系模型?

[英]How To Update Laravel hasMany Relationship Models?

我一直在試圖弄清楚如何更新我的hasMany關系模型。 我可以輕松地創建新的關系,但是當我嘗試更新我的關系模型時它不起作用? laravel push()方法是否仍然有效? 有人可以幫忙嗎? 例如,我想更新與Controller中的Products表相關的分類表。 我下面有一段代碼片段::

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(),我的分類表已正確更新。

我認為你並不完全理解Laravel Eloquent關系的運作方式。 首先,您需要在兩個模型中定義關系。您的分類模型具有此功能,但您的產品模型應具有: public function taxonomies() { return $this->hasMany('App\\Taxonomies', 'product_id', 'product_id'); } public function taxonomies() { return $this->hasMany('App\\Taxonomies', 'product_id', 'product_id'); }

然后,為了更新產品的分類,你會有類似......呃,我不確定你在這里想要實現什么,尤其是你鏈接product_subcategory的方式,所以我不能正確地說,但是看到文檔

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM