方法whereDate不存在

时间:2017-01-13 08:13:15

标签: laravel eloquent laravel-5.3

  • Laravel版本:5.3.28
  • PHP版本:7.0.10
  • 数据库驱动程序&版本:MySQL 5.7.14

我收到错误,当我尝试在我的视图页面中使用whereDate时。

  Macroable.php第74行中的<1/2> BadMethodCallException:方法whereDate   不存在。

     Macroable.php第74行中的

2/2 ErrorException:方法whereDate没有   存在。 (视图:   C:\瓦帕\ WWW \ 2_Work \仪表板\资源\视图\ PDF \ user.blade.php)

我的模型关系是有效的,但为什么我不能使用whereDate函数。

@extends('layouts.pdf')

@section('content')
  <table border="1" cellspacing="0" cellpadding="0" width="545">
    <tr>
      <th>ชื่อผู้ใช้งาน</th>
      <th>เข้าใช้ล่าสุด</th>
      <th>จำนวนการเข้าใช้งานใน 7 วัน</th>
      <th>จำนวนงานที่ทำในวันที่ 13/01/2560</th>
    </tr>
    @foreach ($users as $user)
      <tr>
        <td><span class="td-text">{{$user->user_detail}}</span></td>
        <td align="center">{{$user->ual->first()->created_at ?? NULL}}</td>
        <td align="center">{{$user->ual->where('created_at', '>=', '(CURDATE() - INTERVAL 7 DAY)')->count()}}</td>
        <td align="left"><?php var_dump( $user->dataDetail->whereDate('created_at', '2017-01-13')->toArray() ); ?></td>
      </tr>
    @endforeach
  </table>
@endsection

控制器

$data['users'] = UserModel::all();
return view('pdf.user', $data);

的usermodel

class UserModel extends Model
{
  public function dataDetail()
  {
    return $this->hasMany('App\DataDetailModel', 'user_id', 'user_id');
  }
}

2 个答案:

答案 0 :(得分:3)

您可能需要在括号中使用$user->dataDetail(),以便您可以使用查询生成器。

修改:正如您在评论中提到的,您还需要添加get()来访问该集合。

所以$user->dataDetail()->whereDate('created_at', '2017-01-13')->get()->toArray()

答案 1 :(得分:0)

我想你错过了whereDate的第3段。

请试试这个

if(isset($user->dataDetail)) {
       var_dump($user->dataDetail->whereDate('created_at','=' ,'2017-01-13')->get()->toArray());
 }