Ошибка - Попытка получить свойство не-объекта - Laravel - PullRequest
0 голосов
/ 16 марта 2019

Я пытаюсь показать одну запись на основе идентификатора.И я получаю эту ошибку:

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

Показать функцию из ClientsController:

public function show( Clients $clients)
{
    $clients = Clients::find($clients->id);

    return view('clients.show', ['clients' => $clients]);

}

отдельное шоу.файл вида лезвия

   @extends('layouts.app')

    @section('content')
     <h1>{{ $clients->name }}</h1>


    @endsection

Модель клиента:

class Clients extends Model
{
    //
    protected $fillable = [
        'name', 'type', 'user_id', 'sales_id', 'regions_id'
    ];
    public function user(){
        return $this->belongsTo('App\User');
    }
    public function region(){
        return $this->belongsTo('App\Regions');
    }
    public function sales(){
        return $this->belongsTo('App\Sales');
    }
}

База данных: https://take.ms/7kuo4

Ответы [ 2 ]

0 голосов
/ 16 марта 2019

Вы должны исправить привязку вашей модели, используя единственное число для имени переменной с подсказкой типа, т.е.:

public function show( Clients $client)
{
    return view('clients.show', ['clients' => $client]);
}
0 голосов
/ 16 марта 2019

Клиент для идентификатора клиента, который вы ищете, не найден.Похоже, что привязка маршрута / модели может быть настроена неправильно или вы не получаете правильный идентификатор из запроса .

Если привязка маршрута / модели работала правильно и если переданный идентификатор был найден, вам не нужно совершать вызов find().

$clients = Clients::find($clients->id);

Ошибка в шаблоне блэйда заключается в том, что вы пытаетесь получить доступ к свойству с нулевым значением / значением, которое не является объектом.

$clients->name

Вы можете просто использовать оператор объединения нулей для обработки случая, если объект не существует:

$clients->name ?? "No Name"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...