Blog

Laravel CRUD Readまとめ サルだとわからん

Laravel Read 読み込み部分の実装

ER図の確認

ルーティングの確認


//resourceでCRUDを一通りやってくれる Read Write Update Deleteのこと
//loginしないと、material配下のurlは閲覧できない ->middleware('auth');
Route::resource('/material','MaterialController')->middleware('auth');
// | POST      | material                 | material.store   | App\Http\Controllers\MaterialController@store                          | web          |
// | GET|HEAD  | material                 | material.index   | App\Http\Controllers\MaterialController@index                          | web          |
// | GET|HEAD  | material/create          | material.create  | App\Http\Controllers\MaterialController@create                         | web          |
// | PUT|PATCH | material/{material}      | material.update  | App\Http\Controllers\MaterialController@update                         | web          |
// | GET|HEAD  | material/{material}      | material.show    | App\Http\Controllers\MaterialController@show                           | web          |
// | DELETE    | material/{material}      | material.destroy | App\Http\Controllers\MaterialController@destroy                        | web          |
// || GET|HEAD  | material/{material}/edit | material.edit    | App\Http\Controllers\MaterialController@edit 

 

Controllerでモデルすべてを詰め込む

Controller indexアクション

compact(‘materials’)でViewに$materialsを渡しているのがポイント

public function index(Material $material)
{

//$materialsにはMaterialモデルからすべてgetして詰め込みなさい
$materials = Material::all();

//materials/index.blade.php のファイルを表示して、オブジェクト$materialsを渡しなさい
return view('materials.index',compact('materials'));
}

 

Viewでループを回す

index.blade.phpの実装

コントローラーから渡ってきた$materialsを取り出す


// $materialsをループで取り出す
@foreach($materials as $material)
//$material のenglish キーを取り出す
    • {{ $material -> english }}
//$material のjapanese キーを取り出す
    • {{ $material->japanese }}
//$material のphoto キーを取り出す
  • {{ $material -> photo }}
  • //編集ボタン
    @csrf Edit
    //削除ボタン
    @csrf @method('DELETE') Delete
@endforeach

 


一つ前の記事 後方交会法とは?
次の記事 PG::GroupingError: ERROR: must appear in the GROUP BY clause or be used in an aggregate function