[英]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());
在這里, $product
是Eloquent Model
對象,而price
是該對象的屬性,但是您將其用作method
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.