laravel不保存模型属性

时间:2014-08-14 17:45:48

标签: laravel eloquent

我有一个控制器应该更新amount属性并将其保存到数据库。我可以通过getAmount验证模型的数量是否正确,但是它没有保存到数据库中,也没有返回错误。知道我做错了吗?

这是我的控制人员:

    $response = Input::json()->all();
    $ticket = Ticket::find($id);
    $ticket->setAmount($response['amount']);
    $ticket->getAmount(); //for debugging
    $ticket->save();
    return $ticket;

我的票证模型:

class Ticket extends \Eloquent {    protected $fillable = [];

    protected $amount = 0;

    function setAmount($amount){
        $this->amount = $amount*100000000;
    }

    function getAmount(){
        return $this->amount/100000000;
    }
}

1 个答案:

答案 0 :(得分:1)

$amount课程中删除Ticket媒体资源,该资源即可使用。


顺便说一句,你也可以用Eloquent的变异器来完成这项工作:

class Ticket extends \Eloquent {

    protected $fillable = [];

    public function setAmountAttribute($amount)
    {
        $this->attributes['amount'] = $amount * 100000000;
    }
}

然后像控制任何其他财产一样在控制器中设置它:

$ticket = Ticket::find($id);
$ticket->amount = $response['amount'];
$ticket->save();

和Eloquent将自动为您调用您的setter函数。