とりあえず入力した内容をデータベースへ登録してみる。
モデルの作成
予約データ用のモデルクラス(Bookクラス)を作成しておく。
クラスのファイルは以下コマンドで作成できる。
作成されたクラスを編集する。
☆ app/Models/Book.php
クラスのファイルは以下コマンドで作成できる。
php artisan make:model Book
作成されたクラスを編集する。
☆ app/Models/Book.php
class Book extends Model { protected $fillable = [ 'name', 'email', 'tel', 'resdate', 'restime', 'slot', 'num', ]; }
コントローラの作成
予約データ操作用のコントローラクラスを作成する。
コントローラークラスのファイルは以下コマンドで作成できる。
作成されたクラスを編集し、データ登録用の "store" メソッドを作成する。
コントローラークラスのファイルは以下コマンドで作成できる。
php artisan make:controller BookController
作成されたクラスを編集し、データ登録用の "store" メソッドを作成する。
: use App\Models\Book; class BookController extends Controller { public function store(Request $request) { return Book::create($request->all()); } }
APIの作成
コンポーネントからコントローラのデータ登録(storeメソッド)を呼び出すにはAPIを経由する?
ということでAPIを登録する。
☆ routes/api.php
ということでAPIを登録する。
☆ routes/api.php
: Route::post('store', 'App\Http\Controllers\BookController@store'); :これで POSTメソッドで "api/store" を呼び出すと、コントローラ(BookController)の"store"メソッドが呼び出されデータが登録される、と思われる。
予約確認画面の修正
予約画面の登録ボタンを button → submit へ変更、
scriptでsubmitメソッドを作成し、axios(非同期呼び出し?)で "api/store" を呼び出す。
成功したら、とりあえず "OK" と表示してカレンダーへ戻すことにする。
scriptでsubmitメソッドを作成し、axios(非同期呼び出し?)で "api/store" を呼び出す。
成功したら、とりあえず "OK" と表示してカレンダーへ戻すことにする。
: <form v-on:submit.prevent="submit" class="form-horizontal"> : <button type="submit" class="btn btn-success">登録</button> : <script> export default { methods: { submit: function() { axios.post('/api/store', this.$route.params.book) .then((res) => { alert('OK'); this.$router.push({name: 'book.calendar'}); }); } }, }; </script>
動作確認
予約システム
0 件のコメント:
コメントを投稿