@serkah

Trying to get property of non-object laravel?

Не как не могу понять - обьект есть .дергатть свойства я из бд через модели я вроде могу ......ларавель только начал проходить - прошу обьяснения и исправления ошибки !

5a689a2ca0278921215072.png
Route::get('/orders' , 'PublicController@order_index');

public function order_index(Request $request){

		$order = Order::find($request->order_id);
		if(isset($order)) abort(404);

		$order_templates = TemplatesToOrder::where('order_id', $order->id)->get();
		$templates = [];
		$i = 0;
		foreach ($order_templates as $ot){
			$templates[$i] = Template::find($ot->template_id);
			$templates[$i]['pages'] = TemplatePage::where('template_id', $templates[$i]->id)->get();
			$templates[$i]['count'] = $ot->count;
			$i++;
		}

		$user = null;
		if(Auth::check()) $user = User::find(Auth::user()->id);

    	return view( 'orders.index', [
    		'templates' => $templates,
		    'user' => $user,
		    'order' => $order,
	    ] );
	}

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class TemplatesToOrder extends Model
{
	protected $table = 'templates_to_order';

	protected $fillable = [
		'template_id',
		'order_id',
		'count',
	];

	public function templateId(){
		return $this->belongsTo('App\Template', 'template_id', 'id');
	}
}
  • Вопрос задан
  • 733 просмотра
Пригласить эксперта
Ответы на вопрос 5
@anlamas
У тебя ошибка в 28 строке в PublicController
Переменная $order равна null.

// вместо этого можешь замутить model binding
public function order_index(Request $request){
    $order = Order::find($request->order_id);
    if(isset($order)) abort(404);

Explicit Binding
// и писать так
public function order_index(Order $order, Request $request){

Ответ написан
Комментировать
@vanillathunder
$order = Order::findOrFail($request->order_id);
Ответ написан
Комментировать
Kodenkos
@Kodenkos
Фрилансер
$order = Order::find($request->order_id);
    if(isset($order)) abort(404);
    $order_templates = TemplatesToOrder::where('order_id', $order->id)->get();

Посмотрите внимательней тут
Ответ написан
Комментировать
solotony
@solotony
покоряю пик Балмера
надо так
if(!isset($order)) abort(404);
Ответ написан
Комментировать
@PashaNedved

Route::get('/orders' , 'PublicController@order_index');
...
$order = Order::find($request->order_id);

Отсутствует order_id в реквесте.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы