ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|---|
|
前提
・Laravelプロジェクトを作成済み (まだの場合はこちらのページを参照)
・Vue.jsとの連携とvue-routerのインストール (まだの場合はこちらのページを参照)
・SPAの実行環境を構築するだけです。SPAの様々な記述方法は他のページを参照してください。
サーバーサイド(Laravel)のwebルーティングの無効化
webのルーティング処理はVue.js側で行うのでLaravel側のルーティング処理は不要となる。
※APIのルーティング(routes/api.php)は使用する(後述)
全てにリクエストに対して共通のレイアウト(resources/views/layouts/app.blade.php)を返すようにする。
| routes/web.php |
|---|
|
Route::get('/{any}', function () { return view('app'); })->where('any', '.*'); |
共通レイアウトの作成
Veu.jsを使うための最低限の設定と必要なheadタグ内の要素を記述すればよい。
| resources/views/app.blade.php |
|---|
|
<!DOCTYPE html> <html lang="{{ app()->getLocale() }}"> <head> <meta charset="utf-8"> <!-- CSRF Token --> <!-- CSS --> </head> <body> <div id="app"> <router-view></router-view> </div> <!-- Scripts --> </body> </html>
|
サーバーサイド(Laravel)のAPIを作成
テスト用にDBから適当なデータを取得するAPIを作成する。
まずは適当なAPIルーティングを作成する。
| routes/api.php |
|---|
|
Route::get('articles', 'Article\ArticleController@getArticles'); |
適当なコントローラーを作成する。
| app/Http/Controllers/Article/ArticleController.php |
|---|
|
namespace App\Http\Controllers\Article; use App\Http\Controllers\Controller; class ArticleController extends Controller |
適当なモデルを作成する。(マイグレーションするなり直にcreate tableしてテーブル作成をしておく)
※titleカラムを作成しておくこと。
| app/model/Article.php |
|---|
|
namespace App\Models; use Illuminate\Database\Eloquent\Model; class Article extends Model protected $primaryKey = 'article_id'; public $incrementing = 'article_id'; protected $guarded = [ |
ローカルサーバーの起動
以下の2つのコマンドをそれぞれ別窓で実行してローカルサーバーを起動する。
|
php artisan serve |
|
npm run hot |
Veu.jsでルーティングを作成
| resources/assets/js/app.js |
|---|
|
import Vue from 'vue' require('./bootstrap'); Vue.use(VueRouter) const router = new VueRouter({ const app = new Vue({ |
ビューの作成とAPIの呼び出し
| resources/assets/js/components/Articles.vue |
|---|
|
<template> <div> <ul> <li v-for="article in articles"> {{ article.title }} </li> </ul> </div> </template> <script></span></p> <p><span style="color:#ffffff"> export default {</span></p> <p><span style="color:#ffffff"> created() {</span></p> <p><span style="color:#ffffff"> this.getArticles()</span></p> <p><span style="color:#ffffff"> },</span></p> <p><span style="color:#ffffff"> data() {</span></p> <p><span style="color:#ffffff"> return {</span></p> <p><span style="color:#ffffff"> articles: []</span></p> <p><span style="color:#ffffff"> }</span></p> <p><span style="color:#ffffff"> },</span></p> <p><span style="color:#ffffff"> methods: {</span></p> <p><span style="color:#ffffff"> getArticles() {</span></p> <p><span style="color:#ffffff"> axios<br /> .get('/api/articles')<br /> .then(res => {<br /> this.articles = res.data<br /> })</span></p> <p><span style="color:#ffffff"> }</span></p> <p><span style="color:#ffffff"> }</span></p> <p><span style="color:#ffffff"> }</span></p> <p><span style="color:#ffffff"></script> |
以上の設定で「http://localhost:8000/articles」にアクセスするとarticleテーブルのtitle一覧が表示される。
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
- インストールと設定
- クイックスタート & チュートリアル(初心者向け)
- クイックスタート & チュートリアル(中級者向け)
- ルーティング
- Bladeテンプレート(ビュー/レイアウト)
- コントローラー
- マイグレーションとテーブル定義
- データベースの設定
- Eloquentモデル (ORM)
- SQLとクエリビルダー
- バリデーション
- .envファイルの設定値へのアクセス
- 動作環境による分岐処理
- configフォルダ配下の設定値へのアクセス
- assetヘルパーを利用したpublicフォルダへのアクセス
- storageフォルダへのアクセス
- アプリケーション名の変更
- メンテナンス
- ログイン画面(認証システム)の作成
- ログインの必須化
- ログインユーザー情報の取得
- ルートの認証化
- 本番サーバーへのデプロイ方法
- 多言語化
- csrf_field
- ファイルのダウンロード
- CSVのアップロードおよび読み込み(maatwebsite/excel)
- ページタイトルの設定
- コマンド一覧
- エラー一覧
- SQLの実行ログ出力方法
- キャッシュのクリア
- Selectの結果の最初もしくは最後に任意の値を追加する方法
- ajaxでPOST通信する際の注意点
- ソーシャルログインの実装
- セッション情報の確認
- ログイン、ユーザー登録、パスワードリセット後のリダイレクト先の変更方法
- redirectやreturn viewにメッセージを付与する方法
- クッキー(cookie)の設定と取得
- クラスの再読み込み
- csrfの有効時間を変更する方法
- ViewComposerを用いてviewに共通の値を付与する方法
- View::shareを用いて共通の値を各ビューに渡す方法
- ミドルウェアを用いた処理の共通化
- Middleware内でAuth::check()などを使用する方法
- Controller以外でリダイレクトする方法
- セッションの値の取得/保存/更新/削除
- $requestの値を変更する方法
- 常時SSL化
- ページング(ページネーション)をする方法
- vue.jsとの連携
- Vue.jsと連携するSPA実行環境構築
- .envの値をvue.jsで参照する方法
- vue.jsを本番環境にリリースする方法
- could not find driver(Windows, MySQL編)
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript で base URL を取得する方法|window.location.origin
- 4 YouTube Data API v3 エラー一覧|403・400・404 の原因と対処
- 5 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 6 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 7 Spring Frameworkのアノテーション一覧
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- 【django】ログイン 認証機能 2026-09-08 03:22:09
- MySQL ERROR 1063 Incorrect column specifier for column|原因と直し方 2026-09-08 03:11:09
- 【PHPエラー】Object of class stdClass could not be converted to string 2026-09-07 07:46:04
- Julia Genie ローカル開発サーバ起動完全ガイド 2026-09-07 07:46:04
- Wi-Fi とは|規格と世代(Wi-Fi 4〜7)・周波数帯・CSMA/CA・WPA3 NEW 2026-09-07 07:45:13
- set コマンドでシェルオプションと位置パラメータを操作 | bash 2026-09-07 07:45:13
- JPEG(.jpg/.jpeg)画像形式の完全ガイド — 仕様・マジックナンバー・他形式との比較・EXIF 2026-09-07 07:45:13
- UE5 Get Overlapping Actorsで特定クラスだけ処理|Class Filter・Cast To 2026-09-07 07:45:13
- Linuxで特定拡張子のファイルを再帰削除|find -deleteの安全手順 2026-09-07 07:45:13
- Django CBVでテンプレートに値を渡す|get_context_data・extra_context 2026-09-07 07:45:13
- Linuxで複数ファイルの文字列を一括置換|find・sed・xargsの安全手順 2026-09-07 07:45:13
- Laravelルートグループ|prefix・middleware・nameで一括管理 2026-09-07 07:45:13
- Linux whichコマンドの使い方|絶対パス取得とtype・command -vの違い 2026-09-07 07:45:13
- Linux catコマンドの使い方|行番号表示・複数ファイル連結 2026-09-07 07:45:13
- unable to execute 'gcc': No such file or directory 2026-09-07 07:45:13
コメントを削除してもよろしいでしょうか?