在Laravel中进行质量分配后,为Eloquent模型赋值

时间:2014-06-17 20:41:44

标签: php laravel laravel-4 eloquent

我有以下代码:

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);

发生的大规模调整

有没有办法在那之后分配另一个值? price中没有$product的值。

1 个答案:

答案 0 :(得分:0)

你可以用这个:

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

而不是:

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

此处,$productEloquent Model对象,price是该对象的属性,但您将其用作method