Yah*_*din 1 php laravel laravel-5 laravel-5.2
我有一个名为Book的表的模型,该表books有一个名为的字段cover_image。
但是,我想为该字段定义一个访问器,cover_image而不仅仅是获取默认值。
这就是我尝试执行的操作:
class Book extends Model {
public function getCoverImageAttribute() {
if ($this->cover_image === null) { // Not sure how to check current value?
return "a.jpg"
}
return $this->cover_image;
}
}
Run Code Online (Sandbox Code Playgroud)
但是上述方法当然不起作用,因为$this->cover_image再次调用会导致递归
我怎样才能解决这个问题?
您必须改为检查属性:
class Book extends Model {
public function getCoverImageAttribute() {
return $this->attributes['cover_image'] ?? "a.jpg";
}
}
Run Code Online (Sandbox Code Playgroud)
这也可以让您正常使用$book->cover_image。
我相信以下示例也可以使用:
class Book extends Model {
public function getCoverImageAttribute($value) {
return is_null($value) ? 'a.jpg' : $value;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
472 次 |
| 最近记录: |