質問

私のルートは次のとおりです。

Route::controller('/app/{companyId}/', 'HomeController', array('before' => 'auth'));

すべてのアクションで個別に取得しないようにするには、__constructor で $companyId 引数を取得するにはどうすればよいですか?

役に立ちましたか?

解決

コントローラーの __construct 内のパラメーターを取得したい場合は、次のようにします。

class HomeController extends \BaseController
{
    public function __construct()
    {
        $this->routeParamters = Route::current()->parameters();
    }
}

ルートのパラメーターのキー値リストを返します (例: ['companyId' => '1']) @\Illuminate outing oute を参照

を使用して特定のパラメータを取得することもできます。 getパラメータ() または パラメータ() 方法。

注記: これがそれほど素晴らしいアイデアかどうかはわかりません。問題を解決するためのより洗練された方法や、より良いアプローチがあるかもしれません。

他のヒント

プロセスを簡素化したい場合は、ルート モデル バインディングが最も簡単な方法と思われます。コントローラーのすべてのアクションで適切な Model インスタンスをフェッチする代わりに、ルーティング プロセス中に適切な Model をコントローラーに渡します。

ただし、Route::resource を使用する必要があります。Routes.php 内:

Route::bind('company', 'Company');
Route::resource('company', 'HomeController');

次に、カテゴリのインスタンスがコントローラーに渡されます。たとえば /company/1 の場合:

public function show($company)
{
    // Here you can use, for instance, $company->name
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top