web-dev-qa-db-ja.com

ルートとビューの命名規則

ルート名とビューディレクトリ構造に使用する命名規則に関するいくつかの情報を探しています。

次のルートがあるとします。

Route::get('/teams/choose', 'ChooseTeamController@index')->name('teams.choose.index');

Route::post('/teams/choose', 'ChooseTeamController@choose')->name('teams.choose');

Route::get('/teams/{team}/manage', 'ManageTeamController@index')->name('teams.team.manage.index');

getルートについては、通常、ルート名と一致するディレクトリ構造にビューを配置します。例えば。 resources/views/teams/team/manage/index.blade.php。しかし、これは冗長すぎると思います。

最後の例ではなく、このようにビューディレクトリ構造を使用すると、(自分自身と他の開発者にとって)混乱を招くと思います:resources/views/team/manage/index.blade.php- teamの複数形は使用されないため、他のビューがある場合は、(元の例の規則を使用して)resources/views/teams/choose.index彼らは視覚的に意図した関係を持っていません。つまり異なる「ルート」ディレクトリ-teamsteamがあります。

ご意見やアドバイスをいただければ幸いです。

11
AshMenhennett

getルートの場合、通常はルート名に一致するディレクトリ構造にビューを配置します。例えば。 resources/views/teams/team/manage/index.blade.php。しかし、これは冗長すぎると思います。

同意する。


Laravel docs から:

Laravelは、リソースルートをコントローラーに割り当てるときに、典型的なRESTful "CRUD"アプローチを使用します。各動詞(つまり、GET、POST、PUT、DELETE)は、指定された[〜#〜] uri [〜 #〜]action(技術的にはコントローラーメソッド)、およびroute-name(時々、/path/to/blade/view)。

だから、あなたのスニペットから:

// return view(teams.index)
Route::get('/teams', 'TeamController@index');

// return view(teams.create)
Route::get('/teams/create', 'TeamsController@create');

// redirect('/home');
Route::post('/teams', 'TeamController@store');

// return view('teams.profile')
Route::get('/teams/profile', 'TeamController@profile')->name('profile');

私はこれ resource table を使用して、何をすべきか、何をしないかを常に思い出させます。

おそらく、一部の awesome Laravel codebases を調べると役立つ場合があります。さらに、他のチームが物事をどのように行っているかについての視点は常に貴重です。

私はこれらが非常に役立つことがわかりました:


更新

重要なのは、標準のCRUDアクション、つまりインデックス作成、表示、作成、保存、編集、更新、削除に固執することです。ビューは、その場所に直接落ちます。

Laracon EUでのAdam Wathanの講演 をご覧ください。どんな想像力でもCRUDDYになり得ます。

17
joshuamabina