无法在访问器方法中获取属性 - laravel eloquent

时间:2014-12-19 13:38:17

标签: php laravel eloquent

好的,我希望自定义字段在我的数据库表中不作为列存在。

我跟着,最后一部分: http://laravel.com/docs/4.2/eloquent#accessors-and-mutators

我的型号代码:

class Car extends Eloquent{
    protected $fillable = array('driverID', 'fuelRemaining');
    protected $appends = array('is_driver');

    public function user(){
        return $this->belongsTo('user');
    }

    public function getIsDriverAttribute(){
        return ($this->attributes['driverID'] == Auth::user()->id);
    }
}

车牌表:

Schema::create('cars', function(Blueprint $table)
    {
        $table->increments('id');
        $table->integer('driverID');
        $table->integer('fuelRemaining');
        $table->mediumtext('desc');
        $table->timestamps();
    });

正如你所看到的,我想要一个额外的字段,即" is_driver"要返回,但是当我运行此字段时,此字段用于通过比较ID来确定当前登录的用户是否是驱动程序。

它将输出此错误:

Undefined index: driverID

不确定我在这里做错了什么,请指教。

1 个答案:

答案 0 :(得分:5)

啊我找到了原因。这是未来读者的参考

在我的控制器中我只得到这两个

$car = Car::where('fuelRemaining', 0)->get(array('id', 'desc'));

当我将authorID添加到get数组

$car = Car::where('fuelRemaining', 0)->get(array('id', 'desc', 'authorID'));

我可以在问题中提到的自定义访问器中获取authorID属性。