好的,我希望自定义字段在我的数据库表中不作为列存在。
我跟着,最后一部分: 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
不确定我在这里做错了什么,请指教。
答案 0 :(得分:5)
啊我找到了原因。这是未来读者的参考
在我的控制器中我只得到这两个
$car = Car::where('fuelRemaining', 0)->get(array('id', 'desc'));
当我将authorID添加到get数组
时$car = Car::where('fuelRemaining', 0)->get(array('id', 'desc', 'authorID'));
我可以在问题中提到的自定义访问器中获取authorID属性。