Laravel - цикл Foreach Попытка получить свойство необъекта - PullRequest
0 голосов
/ 03 мая 2018

У меня есть таблица базы данных с

<strong>id | name | url |</strong> 1 | Bike | bike| 2 | Auto | auto|

Я хочу получить все имена из таблицы для просмотра с циклом foreach. Но это возвращает

Попытка получить свойство необъекта

Контроллер

public function category($url, request $id)
{
    $cat = Category::where('url', $url)->firstorfail();
    return view ('view', compact('category'));  
}

Модель

class Category extends Model
{
    protected $fillable = ['name', 'url'];
}

View

@foreach($category as $cat)
    {{ $cat->name }}
    //{{ $cat['name] }} does not return anything.
@endforeach

//{{ $cat->name }} returns only one category name

Я видел введите здесь описание ссылки , я не смог ее решить.

Ответы [ 3 ]

0 голосов
/ 03 мая 2018

Если вы хотите отобразить 1 категорию, вы должны иметь:

Контроллер

public function category($url, request $id)
{
    $category = Category::where('url', $url)->firstorfail();
    return view ('view', compact('category'));  //sends 1 entity to the view
}

Модель

class Category extends Model
 {
      protected $fillable = ['name', 'url'];
 }

View

  {{-- Removed the foreach becaus you have 1 entity sent from the controller --}}
  {{ $category->name }}
0 голосов
/ 02 октября 2018
public function category($url, request $id)
{
$cat = Category::where('url', $url)->firstorfail();
return view ('view')->with('category',$cat);  
}
0 голосов
/ 03 мая 2018

$cat = Category::where('url', $url)->firstorfail(); это возвращает только одну коллекцию, а не массив коллекции. Если вы хотите вернуть все значения, используйте get():

$category = Category::where('url', $url)->get();
return view ('view', compact('category')); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...