Запрос отношений работает в контроллере, но не отображается в файле блейда

#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;