疑問に思っていること
現在Laravelを勉強しているものです。
表題の件につきまして質問させていただきます。
実際にシステム作る時に管理者用の画面とユーザー用の画面を用意すると思います。
例えばなのですが、プロフィール画面を用意する時に
管理者用の画面とユーザー用の画面で2つviewを用意する方がいいのか
または1つviewを用意して、if文などを使い条件で表示させるものを変えた方がいいのか
どちらが、正しい設計の仕方なのでしょうか。
理由も含めて回答いただけると助かります。
以上、よろしくお願いいたします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答2件
0
ベストアンサー
user - role でリレーションにして、定義します。
php
1<?php 2 3use Illuminate\Database\Migrations\Migration; 4use Illuminate\Database\Schema\Blueprint; 5use Illuminate\Support\Facades\Schema; 6 7class CreateUsersTable extends Migration 8{ 9 /** 10 * Run the migrations. 11 * 12 * @return void 13 */ 14 public function up() 15 { 16 Schema::create('users', function (Blueprint $table) { 17 $table->id()->comment('ID'); 18 $table->unsignedBigInteger('company_id')->nullable()->comment('会社ID'); 19 $table->unsignedBigInteger('role_id')->comment('ロールID'); 20 $table->string('name')->comment('氏名');('メール認証日時'); 21 $table->string('password')->comment('パスワード'); 22 $table->rememberToken()->comment('リメンバートークン'); 23 $table->timestamps(); 24 $table->foreign('role_id')->references('id')->on('roles'); 25 }); 26 } 27}
php
1<?php 2 3use Illuminate\Database\Migrations\Migration; 4use Illuminate\Database\Schema\Blueprint; 5use Illuminate\Support\Facades\Schema; 6 7class CreateRolesTable extends Migration 8{ 9 /** 10 * Run the migrations. 11 * 12 * @return void 13 */ 14 public function up() 15 { 16 Schema::create('roles', function (Blueprint $table) { 17 $table->id()->comment('ID'); 18 $table->string('name')->comment('ロール名'); 19 $table->timestamps(); 20 }); 21 } 22}
こうすることで、認証機能(Auth)もそのまま、認可機能(Policy)もそのまま使うことができるので。
投稿2021/01/04 14:16
編集2021/01/05 00:18総合スコア3923
0
極論どっちでもいい。
が、管理者用と利用者用でどれだけ違うかによって分けた方がいい。
投稿2021/01/04 13:57
総合スコア10429
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/01/04 16:07
2021/01/05 03:34