Laravel 7.x でルーティングの質問です。
laravel/ui をインストールしています。
概要
会社ごとにサブドメインを発行して運用したいが、会社IDをURLに含めず、スッキリしたURLでルーティングする方法がないか。
要件
- サブドメインで、会社を判別したい。
- 会社テーブルの
subdomain
の値から、会社を特定する - 全てのページで、サブドメインから判別した会社IDを使いたい
- その他ユーザーテーブルなども、company_id に関連づいたデータで絞り込む運用をしたい
ルーティングで解決する方法がないものか、試してみた結果が以下です。
この時点で、
Illuminate\Routing\Exceptions\UrlGenerationException Missing required parameters for [Route: login] [URI: login]. (View: /home/vagrant/code/resources/views/welcome.blade.php)
というエラーで、welcome
ページすら開きません。
php artisan route:list
の結果は以下の通りです。
vagrant@code:~/code$ php artisan route:list | grep login | {subdomain}.example.com | GET|HEAD | login | login | App\Http\Controllers\Auth\LoginController@showLoginForm | App\Http\Middleware\EncryptCookies | | {subdomain}.example.com | POST | login | | App\Http\Controllers\Auth\LoginController@login | App\Http\Middleware\EncryptCookies |
php
1// NG 2Route::domain('{subdomain}.example.com')->group(function(){ 3 4 Route::get('/', function () { 5 return view('welcome'); 6 }); 7 8 Auth::routes(); 9 10 Route::resource('/companies', 'CompanyController'); 11 Route::resource('/shops', 'ShopController'); 12});
php
1class CreateCompaniesTable extends Migration 2{ 3 /** 4 * Run the migrations. 5 * 6 * @return void 7 */ 8 public function up() 9 { 10 Schema::create('companies', function (Blueprint $table) { 11 $table->id()->comment('ID'); 12 $table->string('subdomain')->unique()->comment('サブドメイン'); 13 $table->string('name')->comment('会社名'); 14 $table->dateTime('created_at')->nullable()->comment('作成日時'); 15 $table->dateTime('updated_at')->nullable()->comment('更新日時'); 16 $table->softDeletes()->comment('削除日時'); 17 }); 18 } 19}
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/12/27 01:34