例)
・web.phpで/admin/groupのルーティングの設定。
・Groupcontroller.phpを作成。 group.blade.phpを表示するようにする。
・app.blade.phpを元に、group.blade.phpを用意する。
・Group.vueを作成し、group.blade.phpで呼び出すように書く。
bladeのもとになるファイルは、app.blade.php!
-
ルーティングの設定:
routes/web.php
ファイルで、特定のURLに対してどのコントローラーのどのメソッドを使うかを指定しました。例えば、/admin
にアクセスされたらAdminController
のindex
メソッドを呼ぶように指定しました。```php phpCopy code use App\Http\Controllers\AdminController; Route::get('/admin', [AdminController::class, 'index']); ```
2. コントローラーの作成:
- AdminController
という名前のコントローラーを作成し、index
メソッド内で admin.admin
ビューを表示するようにしました。
```php
phpCopy code
// app/Http/Controllers/AdminController.php
public function index()
{
return view('admin.admin');
}
```
**admin.adminはadminファイルの中のadmin.blade.phpフォルダという意味!**
3. Blade テンプレートの作成:
- resources/views/admin/admin.blade.php
ファイルを作成し、@extends('layouts.app')
で app.blade.php
レイアウトを継承し、@section('content')
〜 @endsection
の間に admin-dashboard
コンポーネントを表示するようにしました。
```
bladeCopy code
<!-- resources/views/admin/admin.blade.php -->
@extends('layouts.app')
@section('content')
<admin-dashboard :auth="{{ json_encode(Auth::user()) }}"></admin-dashboard>
@endsection
``
4. Vue コンポーネントの作成:
- resources/js/components/AdminDashboard.vue
ファイルを作成し、<template>
セクションには表示したいコンポーネントの内容を記述しました。
```
vueCopy code
<!-- resources/js/components/AdminDashboard.vue -->
<template>
<div>
<h1>Welcome to Admin Dashboard!</h1>
<p>管理者メニュー</p>
<!-- 他のコンポーネントの内容をここに追加 -->
</div>
</template>
<script>
export default {
props: {
auth: {
type: Object,
required: true
}
},
// 他のコード...
};
</script>
<style scoped>
/* コンポーネント固有のスタイルをここに記述 */
</style>
```
5. 結果の確認:
- php artisan serve
コマンドで開発用サーバーを起動し、http://127.0.0.1:8000/admin
にアクセスして結果を確認しました。