【问题标题】:Method whereDate does not exist方法 whereDate 不存在
【发布时间】:2017-01-13 08:13:14
【问题描述】:
  • 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:\wamp\www\2_Work\dashboard\resources\views\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);

用户模型

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

【问题讨论】:

  • 您能添加您的型号吗? $user-&gt;dataDetail 是什么?
  • 你的 laravel 版本是什么?
  • @SSuhat V5.3.28
  • 你试过$user-&gt;dataDetail()-&gt;whereDate('created_at', '2017-01-13')-&gt;toArray();吗?
  • @CUGreen 哦对了,但是必须加->get()才能使用这个$user-&gt;dataDetail()-&gt;whereDate('created_at', '2017-01-13')-&gt;get()-&gt;toArray();非常感谢。

标签: laravel eloquent laravel-5.3


【解决方案1】:

您可能需要使用带括号的$user-&gt;dataDetail(),以便使用查询生成器。

编辑:正如您在评论中提到的,您还需要添加 get() 才能访问该集合。

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

【讨论】:

  • 啊啊啊。谢谢。
【解决方案2】:

我认为你错过了 whereDate 的第三个参数

请试试这个

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-28
    • 1970-01-01
    • 1970-01-01
    • 2018-06-16
    相关资源
    最近更新 更多