ルーティングの書き方
下がルーティングの書き方です。
Route::get('tests/test','TestController@index');
//url コントローラーのindex
Route::get('user/index','UserController@index'); //url コントローラー
下がコントローラーの書き方です。
class ContactFormController extends Controller
{
//省略
public function index()
{
//
return view('user.index');//viewのuserファイルのindex.phpに書いてある処理のこと
}
//省略
}
コントローラーで処理をしてviewに渡します。
テスト
ルートグループ
ルートごとに定義するのではなく、一括して適用するため方法でRoute::groupメソッド
を使います。
Route::Group(['prefix' => 'user','middleware' => 'auth'],function(){
Route::get('index','UserController@index')->name('contact.index');
});
//配列
//prefixでフォルダ指定
//middleware' => 'auth認証の場合表示
//function コールバック
Auth::routes();//認証機能
のような画面になりました。
コントローラーのアクション一覧
次にコントローラーについてです。下はコントローラーアクション一覧です。
コントローラー
コントローラーはクライアントから送られてきたデータをサーバーに返す時に
モデルやviewに指示を出すような処理をする部分です。
MVCモデルをみてみると
上のような流れで処理がされます。
コントローラー作成
コントローラーを作成する時は下のような構成になります。
App\Http\Controllers
コントローラー作成をします。
$ php artisan make:controller コントローラー名
今回はUserコントローラーを作ります。
$ php artisan make:controller TestController
下のように作成されます。
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class TestController extends Controller
{
//
}
MVCモデルを書く
MVCそれぞれの書き方を書いていきます。
⚫︎ルーティング
Route::get('tests/test','TestController@index');
⚫︎コントローラー
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class TestController extends Controller
{
//
public function index()
{
return('tests.test');
}
}
viewファイルにはbladeをつけるようにしてください。
PHP
でサーバーを起動し、http://127.0.0.1:8000/tests/testで見ると
PHPと出力されます。
dd($変数;
dd($変数);
は***(do + var_dump)を省略***した形です。
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\Test; //モデルのデータを持ってくる
class TestController extends Controller
{
public function index()
{
$values = Test::all(); //Testモデルから取ってくる
dd($values); //ここ
//do + var_dump
return view('tests.test');
//viewのファイル
}
}
$変数(ここでは$values)のファイルをviewファイルで表示させます。
それで
<?php
//省略
class TestController extends Controller
{
public function index()
{
$values = Test::all(); //Testモデルから取ってくる
//dd($values);
//do + var_dump
return view('tests.test',compact('values')); //この部分を追記
//viewのファイル
}
}
そしてviewに表示させたいことを書きます。
PHP<br>
@foreach($values as $value) //複数形 単数形で表示し配列を表示
{{$value->id}}<br>
{{$value->text}}<br>
@endforeach
これで出力すると
ここで表示されているのは以前tinkerで作ったデータベースの中身のことです。
blade
上のviewのコードはビューの中にPHPを直接記述することを許している
]Laravelのテンプレートエンジンです。
{{}}
はXSS攻撃
を防ぐためにPHPのhtmlspecialchars関数を自動的に通されます。
参考資料