Zac*_*ams 2 php laravel eloquent laravel-eloquent
我试图覆盖created_at和updated_at的laravel eloquent模型常量:
namespace App;
use Illuminate\Database\Eloquent\Model;
class Visit extends Model
{
const CREATED_AT = 'creation_date';
const UPDATED_AT = 'last_update';
}
Run Code Online (Sandbox Code Playgroud)
然后获取最新条目:
dd(Visit::latest()->get());
Run Code Online (Sandbox Code Playgroud)
但我得到一个未知的列错误:
"SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_at' in
'order clause' (SQL: select * from `visits` order by `created_at` desc)"
Run Code Online (Sandbox Code Playgroud)
为了让这个工作还有什么需要做的吗?
latest()始终created_at默认使用.您必须自己指定列名称:
Visit::latest(Visit::CREATED_AT)->get();
Run Code Online (Sandbox Code Playgroud)
您可以通过向模型添加本地范围来覆盖默认行为Visit:
public function scopeLatest($query)
{
return $query->orderByDesc(static::CREATED_AT);
}
Run Code Online (Sandbox Code Playgroud)
更新:这将在Laravel 5.7中修复:https://github.com/laravel/framework/pull/24004
| 归档时间: |
|
| 查看次数: |
1199 次 |
| 最近记录: |