Słuchajcie mam pewien dylemat jak czytelnie i logicznie nazywać trasy oraz kontrolery. Przykładowo mam 2 powiązane ze sobą modele:
- User
- Car
Relacje:
User może mieć 1 lub wiele Car.
Car należy tylko do 1 User.
<?php
namespace App;
use Illuminate\Notifications\Notifiable;
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Http\Request;
class User extends Authenticatable implements MustVerifyEmail
{
use Notifiable;
protected $fillable = [
'username', 'email', 'password'
];
protected $hidden = [
'password', 'remember_token',
];
public function cars()
{
return $this->hasMany(Car::class);
}
}
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Car extends Model
{
protected $fillable = [
'user_id', 'name'
];
public function user()
{
return $this->belongsTo(User::class);
}
}
Myślałem aby stworzyć resource controllers i w tabeli routes dodać:
Route::resource('users', 'UsersController');
Route::resource('posts', 'PostsController');
i wtedy mam trasy w stylu
/users
/users/create
/users/1
/users/1/edit
itd
/cars
/cars/create
/cars/1
/cars/1/edit
itd
nie mniej jednak założyłem sobie, że obiekt Car nie może istnieć bez User czyli skłaniam się do tras tego typu
/users/1/cars
/users/1/cars/1
/users/1/cars/1/edit
itd
czyli dla każdego użytkownika będę mógł sprawdzić jakie ma samochody. Ogólnie chciałbym również mieć route przeznaczony tylko dla administratora, który będzie mógł wyświetlać wszystkich User oraz Car, czyli mieć trasy: /users oraz /cars. Nie wiem jednak jak się do tego zabrać i czy ma to sens.
Moglibyście doradzić jak logiczne dobrać nazwy tras tak aby można było łatwo i intuicyjnie sprawdzać np. Cars danego User?