Я немного запутался в отношении laravel маршрутов и того, как это должно быть сделано.
У меня есть две модели:
Customer
CustomerAddress
Отношения такие, как можно было бы ожидать:
Customer hasMany CustomerAddress
CustomerAddress belongsTo Customer
В моем файле маршрутов у меня есть это для клиента, который работает отлично:
Route::get('/admin/customers', 'Admin\CustomersController@index')->name('admin.customers.index');
Route::get('/admin/customers/create', 'Admin\CustomersController@create')->name('admin.customers.create');
Route::post('/admin/customers', 'Admin\CustomersController@store')->name('admin.customers.store');
Route::get('/admin/customers/{customer}', 'Admin\CustomersController@show')->name('admin.customers.show');
Route::get('/admin/customers/{customer}/edit', 'Admin\CustomersController@edit')->name('admin.customers.edit');
Route::patch('/admin/customers/{customer}', 'Admin\CustomersController@update')->name('admin.customers.update');
Route::delete('/admin/customers/{customer}', 'Admin\CustomersController@destroy')->name('admin.customers.destroy');
(я знаю, что мог бы использовать маршрут ресурса, но мне нравится способ, которым это документирует доступное маршруты)
Что касается адресов клиентов, я хотел бы иметь возможность использовать что-то вроде:
Route::get('/admin/customers/addresses', 'Admin\CustomersAddressesController@index')->name('admin.customers.addresses.index');
Это раньше не работало и возвращало 404, но в конце концов я понял, что это это было потому, что он занимался «адресной» частью и осуществлял поиск в базе данных, а поскольку действительного покупателя не было, он вернул мне 404. Я исправил это, переместив его до того, как клиенты отправятся в путь. Это правильный способ сделать это?
Я также хотел бы иметь возможность фильтровать адреса по идентификатору пользователя примерно так:
Route::get('/admin/customers/{customer}/addresses', 'Admin\CustomersAddressesController@index')->name('admin.customers.addresses.index');
И возвращать только указанные c адреса клиентов, но я не уверен, как это должно быть сделано.
Что касается именования моделей, у меня есть две миграции: одна для таблицы с именами клиентов, следовательно, модель Customer, а другая для таблицы, называемой Customers_addresses. следовательно, модель CustomerAddress.
Это то, как это должно быть сделано?
Кажется немного странным, что обе модели имеют Customer в названии, но так как таблицы похожи, это то, что я и сделал. Должен ли я изменить имена моделей только на Customer и Address?
Должен ли я также изменить имена таблиц на клиенты и адреса вместо клиентов и users_addresses?
То же самое относится к контроллерам, которые в настоящее время с именами CustomersController и CustomersAddressesController.
Какова правильная структура имени для этого?
Я знаю, что это много, но я действительно запутался в этом, и я просто хочу сделать это правильно путь. Спасибо!