首页 > 解决方案 > Laravel:按日期范围搜索

问题描述

我需要在 Laravel 中按创建日期搜索记录

我的用户模型

public function scopeCreate_at($query, $created_at){
    if($created_at)
        return $query->whereRaw('created_at', 'LIKE', "%$created_at%");
} 

我的用户控制器

class UserController extends Controller
{
public function index(Request $request){
    $name  = $request->get('name');
    $email  = $request->get('email');
    $bio  = $request->get('bio');
    $created_at  = $request->get('created_at');

    $users = User::orderBy('id', 'DESC')
        ->name($name)
        ->email($email)
        ->bio($bio)
        ->created_at($created_at)
        ->paginate(10);
    return view('user', compact('users'));
}

风景

<div class="form-group">
{ Form::date('created_at', null, ['class' => 'form-control', 'placeholder' => 'Creacion'])}}
</div>

但是,当我重新加载页面时,我有这个

BadMethodCallException
Method Illuminate\Database\Query\Builder::created_at does not exist.

其他方法效果很好

标签: phplaraveldatesearchtimestamp

解决方案


'created_at' !== 'create_at'

scopeCreate_at

更新:

public function scopeCreate_at

scopeCreate_at

更新:

...Create_at

更新:

lagbox 将信交给 OP'd'并说:“你丢了这个”

但说真的,您可以命名函数scopeCreated_at或通过命名函数调用范围create_at来解决该问题。


推荐阅读