簡體   English   中英

在Laravel中進行大規模分配后為雄辯模型分配值

[英]Assign value to Eloquent model after mass-asignment in Laravel

我有以下代碼:

public function postCreate($subjectId = null) {
    if ($subjectId) {
        $subject = Subject::find($subjectId);

        $input = Input::all();

        $v = Validator::make($input, Product::$rules);

        if ($v->passes()) {
            $product = new Product($input);
            $amazon_product = new AmazonProduct($input['amazon_id']);
            $product->price($amazon_product->price());

            $subject->products()->save($product);

            Session::flash('message', 'Produkt erfolgreich gespeichert');
            return Redirect::to('boss/subjects/show/'.$subjectId);
        }
    } else {
        Session::flash('message', 'Innerhalb der POST-Action muss die Gruppen-ID angegeben sein.');
        return Redirect::to('boss/subjects');
    }
}

但是我收到以下錯誤:

Call to undefined method Illuminate\Database\Query\Builder::price()

我認為問題在於批量分配發生在$product = new Product($input);

之后有什么方法可以分配另一個值? $product不存在price值。

您可以使用此:

$product->price = $amazon_product->price();

代替:

$product->price($amazon_product->price());

在這里, $productEloquent Model對象,而price是該對象的屬性,但是您將其用作method

暫無
暫無

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

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