#laravel #laravel-7
#ларавель #ларавель-7
Вопрос:
В моем представлении подробных билетов я хочу показать все данные загруженного продукта со всеми его полями, но когда я хочу просмотреть подробную информацию, я получаю все свои продукты, а не только один продукт, который принадлежит этому билету.
Итак, вот как я храню свои билеты:
public function store(Request $request){ /*dd($request-gt;all());*/ $ticket = new Ticket(); if($request-gt;file('file')){ $file = $request-gt;file('file'); $filename = time().'.'.$file-gt;getClientOriginalName(); $request-gt;file-gt;move('storage/', $filename); $ticket-gt;file = $filename; } /*$ticket-gt;cuenta_id = $request-gt;cuenta_id;*/ $ticket-gt;contact_id = $request-gt;contact_id; $ticket-gt;statusTicket_id = $request-gt;statusTicket_id; $ticket-gt;typeTicket_id = $request-gt;typeTicket_id; $ticket-gt;idOwner = Auth::user()-gt;id; $ticket-gt;product_id = $request-gt;product_id; $ticket-gt;serial_number = $request-gt;serial_number; $ticket-gt;accesories = $request-gt;accesories; $ticket-gt;entry = Carbon::parse ( $request-gt;entry)-gt;toDateString(); $ticket-gt;deliver = Carbon::parse ($request-gt;deliver)-gt;toDateString(); $ticket-gt;save(); Session::flash('success'); return redirect()-gt;route('tickets.view'); }
И это мой метод детализации:
public function detail($id){ $detailData = Ticket::find($id); $detailData['contacts'] = Contact::all(); $detailData['products'] = Product::all(); $detailData['ptypes'] = Ptype::all(); $detailData['brands'] = Brand::all(); $detailData['models'] = ModelP::all(); return view('backend.ticket.detail-ticket', compact('detailData')); }
Поэтому, на мой взгляд, я передаю свой продукт следующим образом:
@foreach($detailData['products'] as $product) lt;div class="form-group col-md-3"gt; lt;label for="product_id"gt;Productolt;/labelgt; lt;input type="text" name="product_id" value="{{$product-gt;ptype-gt;productType . ", " . $product-gt;marca-gt;brandName . " " . $product-gt;modelo-gt;modelName}}" class="form-control" readonlygt; lt;/divgt;
@endforeach
И это изображение того, как он приносит мне данные:
Там должен быть только один продукт, но вместо этого у меня есть весь мой список продуктов.
Есть идеи, что я делаю не так при передаче данных в мое представление?
Ответ №1:
в этой строке:
$detailData['products'] = Product::all();
вы загружаете все продукты, а не только нужный продукт …
это должно быть:
$detailData['products'] = Product::find($detailData-gt;product_id);
Комментарии:
1. Но теперь я получаю еще одну ошибку, на мой взгляд,
Trying to get property 'ptype' of non-object
2. потому что нет необходимости в @foreach($detailData[‘продукты’] как $продукт)
3. $detailData[«продукты»] будет содержать только одну запись
4. Удалив foreach и передав его таким образом, я все равно получаю ту же ошибку.
value="{{$detailData-gt;ptype-gt;productType . ", " . $detailData-gt;marca-gt;brandName . " " . $detailData-gt;modelo-gt;modelName}}"