У меня проблема с попыткой получить свойство столбца в Laravel - PullRequest
0 голосов
/ 27 сентября 2018

Я уже знаю, что проблема с этим вопросом, который я объясню, похожа на эти другие вопросы.

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

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

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

Но моя проблема не вточно такая же проблема этих вопросов или другой похожий вопрос.

У меня есть веб-сайт о продаже автомобилей, где я показываю таблицу со всеми покупателями и количеством автомобилей, которые купил каждый покупатель, когда я нажимаюна кнопке «Подробнее ...» веб-страница перенаправляет на другую веб-страницу, которая отображает более подробную информацию о выбранном клиенте.

На этой веб-странице у меня есть еще одна таблица, которая показывает количество автомобилей, дату, модель и марка автомобиля, приобретенного клиентом, и кнопка, позволяющая добавить новый автомобиль, купленный покупателем.

ПРИМЕЧАНИЕ. Я вхожу в эту сеть.ите как админ.

Когда я нажимаю на эту кнопку, чтобы добавить новые автомобили.Я получаю эту ошибку.

ErrorException (E_ERROR) Попытка получить 'id' свойства не-объекта (представление: C: \ xampp \ htdocs \ car-shopping \ resources \ views \ CarShop \ ShowCustomerCarsDetails.blade.php)

Строка кода, которую подчеркивает это сообщение об ошибке:

<td>{{$customer->id}}</td>

Это таблица данных клиента, которая появляется после того, как я нажал кнопку (говорит:подробнее ...) на предыдущей странице.Перед страницей ShowCustomerCarDetails.blade.php.

<!--ShowCustomerCarDetails.blade.php-->

<tbody> 
  <tr>


    <td>{{$customer->id}}</td> <!--THIS LINE-->


    <td>{{$customer->name}}</td>
    <td>{{$customer->address}}</td>
    <td>{{$customer->phoneNumber}}</td>

        @if($car->id == $customer->car_id)
            <td>{{$car->model}}</td>
        @endif           
    </tr>
</tbody>

ПРИМЕЧАНИЕ: Предыдущая страница 'ShowCustomerCarDetails.blade.php' называется, 'ShowCustomersAndCars_index.blade.php' На этой веб-странице у меня есть таблица, которая показывает всех клиентов и количество купленных ими автомобилей, на этой странице у меня есть кнопка с именем 'Подробнее... ', которые перенаправляют на ' ShowCustomerCarDetails.blade.php '.

И это корпус настольного автомобиля, который купил клиент.

<!--At the end of the website 
ShowCustomerCarDetails.blade.php -->

<thead>
  <tr>
     <th>CAR NAME</th>
     <th>CAR MODEL</th>
     <th>CAR PRICE</th>
     <th>CAR YEAR</th>
     <th>PURCHASE DATE</th>
     <th>OWNER</th>
    </tr>

</thead>

<tbody>
    @foreach($date as $carDateBuy)
        @if($customer->id == $carDateBuy->customer_id)
            <tr>
                <td>{{$car->name}}</td>             
                <td>{{$car->model}}</td>
                <td>{{$car->price}}</td>
                <td>{{$car->year}}</td>
                <td>{{$carDateBuy->date}}</td>
                <td>{{$carDateBuy->customer_name}}</td>
            </tr>
        @endif
    @endforeach
</tbody>

ПРИМЕЧАНИЕ: Таблица дат, она автоматически заполняется информацией о клиенте, когда клиент покупает автомобиль.

И кнопка добавления новогоавтомобили на одной веб-странице.

<div>
  <a href="{{route('NewCars')}}">
    <input type="button" name="AddCars" value="ADD NEW CAR">
  </a>
</div>

и маршрут в web.php

Route::get('ListCustomersCar/NewCars',['as' => 'NewCars', 'uses' => 'CustomerCarController@createNewCars']); 

CustomerCarController метод createNewCars():

public function createNewCars(){

  return view('customer.NewCars');
}

Для более подробной информации я добавляю таблицы и его отношения:

Picture1_Car-Customer

Picture2_Customer-Date1

Picture3_Customer-Date2

Что я делаю неправильно на моем веб-сайте?Если я что-то упустил, я обновлю этот вопрос.Спасибо! * * 1092

Ответы [ 2 ]

0 голосов
/ 28 сентября 2018

Если ошибка в

ShowCustomerCarDetails.blade.php

, тогда проблема с контроллером (на данный момент этот контроллер будет называться CustomerController.php)и функция (как showCustomerCarDetails()) , которая возвращает указанный выше файл вида .

Итак, возможное решение - проверить контроллер CustomerController.php и функцию showCustomerCarDetails().Ниже приведен контрольный список для отладки проблемы:

  1. Сначала проверьте, правильно ли вы получаете переменную $customer в функции showCustomerCarDetails, сбросив ее dd($customer).Здесь я предполагаю, что вы знаете, как получить переменную $customer из модели Customer.Это просто, как $customer=Customer::findOrFail($id), параметр $id - это тот, который был передан через URL в контроллер и функцию.
  2. Теперь, если вы получаете данные о клиентах из базы данных, отправьте эту переменнуюэто $customer вместе с файлом представления, используя ваш предпочтительный метод, например return view('CarShop.ShowCustomerCarsDetails', compact($customer))

Я надеюсь, что это решит проблему, и в случае каких-либо сомнений, пожалуйста, не стесняйтесь спрашивать:)

0 голосов
/ 27 сентября 2018

Вы должны передать в функцию view() массив с переменными, которые будет использовать ваше представление, например:

return view('customer.newCars', 
    [
        'customer' => $customer,
        'car' => $car,
        ...
    ]
);

Если вы хотите передать красноречивые объекты, попробуйте:

return view('customer.newCars', compact($customer, $car, ...));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...