【问题标题】:Laravel: scope search by dateLaravel:按日期范围搜索
【发布时间】:2018-12-30 08:18:24
【问题描述】:

我需要在 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.

其他方法效果很好

【问题讨论】:

  • scopeCreate_at更改为scopeCreatedat

标签: php laravel date search timestamp


【解决方案1】:

'created_at' !== 'create_at'

scopeCreate_at

更新:

public function scopeCreate_at

scopeCreate_at

更新:

...Create_at

更新:

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

但说真的,您可以将函数命名为 scopeCreated_at 或使用您命名它的名称 create_at 来调用作用域来解决该问题。

【讨论】:

  • 更改方法中的参数,但我有同样的错误
  • 这是真的,我转来转去,我看不到它。非常感谢
  • 发生在每个人身上:)
猜你喜欢
  • 2014-07-23
  • 1970-01-01
  • 2023-03-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多