【问题标题】:Laravel FirstorNew()/FirstorCreate() Error in relationshipLaravel FirstorNew()/FirstorCreate() 关系错误
【发布时间】:2017-08-28 17:58:19
【问题描述】:

我有 2 个表,分别称为产品和颜色 产品属于Tomany 颜色和颜色属于ToMany 产品使用多对多关系 现在我正在尝试在单个产品中添加更多颜色,如果颜色名称不存在,则首先检查颜色名称,而不是在这里创建新的代码是我的代码

public function addproductdetailspost(Request $request, $product){
    $color_name = $request->color;
    $product = product::where('slug', $product)->firstorfail();
    $color = color::where('name', $color_name)->firstOrNew();
    $color->name = $color_name;
    $color->save();
    $product_id = $product->id;
    dd($product_id);
    $color_id = $color->id;
    $color->products()->attach($product_id);
    return Redirect::back()->with('status', 'Post Success');
}

但现在我遇到了错误

Type error: Too few arguments to function Illuminate\Database\Eloquent\Builder::firstOrNew()

谢谢

【问题讨论】:

    标签: php laravel laravel-5.4


    【解决方案1】:

    您不需要为 Color 模型使用 where 方法,因为 firstOrNew 适合您。

    $color = color::firstOrNew(['name', $color_name]);
    //$color->name = $color_name; No need s
    $color->save();
    

    Laravel 5.4 Documentation

    【讨论】:

      【解决方案2】:

      我忘了添加参数

      $color = color::where('name', $color_name)->firstOrCreate(['name' => $color_name]);
      

      现在可以正常使用了

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-11-09
        • 2014-07-20
        • 2014-06-04
        • 1970-01-01
        • 2018-11-28
        • 1970-01-01
        • 2017-04-16
        相关资源
        最近更新 更多