#php #laravel
Вопрос:
У меня есть такой запрос.
$types = Types::where('id', '=', '2')->with('purposes', function ($query) {
$query->withCount('pool');
})->first();
Этот запрос работает хорошо, и у меня есть это предисловие. Этот foreach дает именно то, что я хочу, и он работает в контроллере, но не полностью работает в blade. Он дает имя типа, но счетчик не работает. Однако, когда он дает счетчик в контроллере. Что мне делать?
Foreach($types as $item){
$item->pool_name;
$item->pool_purposes_count;
}
Комментарии:
1. $types-это единственная запись, которую я считаю из-за
->first()
. Почему петля?2. Вам не нужен массив, вы можете получить доступ по
$types->types_name;
3. Вы можете сократить где/сначала с
find(2)
, просто добавьте с перед ним.4. Я исправил вопрос
5. распечатайте dd (типы$); в контроллере после запроса и проверьте, получаете ли вы количество, и вставьте снимок экрана dd (типы$)
Ответ №1:
Ваш код должен быть:
$item = Types::->with('purposes', function ($query) {
$query->withCount('pool');
})->find(2);
Затем вы можете использовать, в blade:
$item->pool_name;
$item->pool_purposes_count;