Я провел несколько поисков по этому вопросу и продолжаю быть в тупике.Я не уверен, является ли это проблемой date (), или проблемой laravel / eloquent.
Справочная информация:
У меня есть три таблицы.Таблица «врач», которая имеет отношение «принадлежат к многим», и обратно «таблица пациентов».Затем таблица «рецептов», принадлежащая «пациенту».На модели «Доктор» я создал ярлык из таблицы «Доктор» к рецептам:
public function prescriptions() {
$this->load(['patients.prescriptions' => function($query) use (&$relation) {
$relation = $query;
}]);
return $relation;
}
Я пытаюсь добиться того, чтобы подсчитать, сколько раз дата - в текущем месяце -в столбце «prescribe_date» таблицы рецептов. Так, если доктор отправил 10 рецептов в августе и 5 в сентябре, он должен показать 5 (так как мы в настоящее время в сентябре).
Вот как выглядит моя Dashboard:
$user = Auth::user();
$doctors = User::find(Auth::user()->id)->doctors()->orderBy('full_name', 'asc')->paginate(10);
return view('dashboard')->withDoctors($doctors);
А это моя dashboard.blade.php:
<table class="table table-hover table-sm">
<thead>
<tr>
<th scope="col">Doctor Name</th>
<th scope="col">Total Patients</th>
<th scope="col">Monthly Prescriptions</th>
<th scope="col">Date Doctor Added</th>
</tr>
</thead>
<tbody>
@foreach ($doctors as $doctor)
<tr>
<th scope="row">
<a href="{{route('doctors.show', $doctor->id)}}">{{$doctor->full_name}}</a>
</th>
<td>{{$doctor->patients()->count()}}</td>
// This is where I'm falling down
<td>{{$doctor->prescriptions()->where(date('m', strtotime($doctor->prescriptions()->prescribe_date)), '9')->count()}}</td>
<td>{{date('m-d-Y', strtotime($doctor->created_at))}}</td>
</tr>
@endforeach
</tbody>
</table>
Это ошибка, которую она возвращает:
Undefined property:
Illuminate\Database\Eloquent\Relations\HasMany::$prescribe_date
Однако, если я изменю эту строку, чтобы отразить совпадение с истинной датой, она вернет правильное количество:
{{$doctor->prescriptions()->where('prescribe_date', '1969-12-31')->count()}}
Так что я не уверен, является ли это проблемой с моей датой php (), или проблема с моим синтаксисом laravel / eloquent, или что-то связанное с отношениями с базой данных. Спасибо!
Обновление
Я пытаюсь использоватьФункция date () внутри функции where длявытяните текущий месяц из столбца даты «прописать», затем используйте «9» в качестве симуляции текущего текущего месяца.