Предоставление параметра {customer}
методу index()
контроллера было правильным решением.После публикации этого вопроса я наткнулся на термин контроллер вложенных ресурсов , который точно описывает то, что я хотел достичь.В справочном сообщении для команды php artisan make:controller
я обнаружил, что флаг -p
сделает это для меня.
Я создал новый контроллер с использованием php artisan make:controller --model=Contact --parent=Customer TestCustomerContactsController
и обнаружил, что единственными изменениями в моем текущем контроллере были точные изменения Я уже вносил в свой существующий контроллер.
Встроенный экран отладки в Laravel представлял собой красную сельдь.Не имея $customer
области действия метода, Laravel выдаст ошибку (как и должно быть).С правильно заданной областью действия, сообщение об ошибке исчезло, но с совершенно пустым холстом казалось, что я движусь не в том направлении.
Исправление
Мой view
был заполнен@section
с, но без @extends
, сообщая, какой шаблон макета будет отображаться.Без предоставления этой директивы любой код в блоках @section
не будет обработан, который в моем случае представлял собой весь вид, возвращая пустую страницу.
Ответ на другой вопрос
В случаеиз ответа * Developer @ Developer, любой {parameter}
, присутствующий в URI Route
, также доступен через request()->parameter
в контроллере.Например,
// routes/web.php
Route::get('/customers/{customer}/contacts/{contact}', 'CustomerContactsController@show');
// CustomerContactsController.php
public method show()
{
$customer_id = request()->customer;
$contact_id = request()->contact;
}