Пытаясь получить свойство не-объекта, я не могу передать данные в представлении ProductDetails - PullRequest
1 голос
/ 22 января 2020

У меня есть ошибка в моем коде представления Productdetails

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

web. php файл:

Route::delete('/Destroy/{id}','ProductsController@destroy');
Route::get('/Edit/{id}', 'ProductsController@edit');
Route::post('/Update/{id}','ProductsController@update');

Route::get('/listing',function(){

    $products = Product::all();
    return view('pages.productlisting',compact('products'));

});

Route::get('Product-details/{id}','ProductsController@ProductDetail');

Функция ProductDetail На контроллере

public function ProductDetail($id)
{
   $products = Product::findOrFail($id);
   return View('pages.productdetails', compact('products',$products));
}

просмотр файл:

@foreach($products as $product)
  <h1>{{$product->name}}</h1>
@endforeach

И у меня проблема с моими представлениями в атрибутах данных

Атрибуты базы данных Myd *

name , price , категория , описание ,

платформа .

Мне нужно передать эти данные в подробном представлении о товаре

1 Ответ

1 голос
/ 22 января 2020

При этом вы получаете одну коллекцию.

$products = Product::findOrFail($id);

Вам не нужно передавать ее в foreach loop. Измените в вашем файле просмотра, как показано ниже. Удалить foreach.

<h1>{{$products->name}}</h1>

Если вы используете метод get(), вы получите несколько объектов, где вы можете использовать foreach. Но для find() и first() методы возвращают один объект, поэтому нет необходимости в цикле.

...