2

私はlaravelが初めてです。私の唯一のコントローラーのURLは

http://localhost/myapp/public/users

フォーム関数のビューでは、ポスト関数への絶対パスを実行する必要はありません。たとえば、

<form method='post' action='/myapp/public/user/update-user'>

ユーザーコントローラーをベースURLパスとして設定したいので、フォームで言うことができます

<form method='post' action='/update-user'>

これは可能ですか?

4

4 に答える 4

0

はい、可能ですが、laravel はこれをサポートするように設定されていないため、少し複雑です。

関数を次vendor/laravel/framework/src/Illuminate/Http/Request.phpのように置き換えて、ファイルを変更する必要があります。root()

public function root($domain = NULL)
{
    return rtrim(($domain?:$this->getSchemeAndHttpHost()).$this->getBaseUrl(), '/');
}

そしてgetRootUrl($scheme, $root = null)、ファイルのメソッドで、次のvendor/laravel/framework/src/Illuminate/Routing/UrlGenerator.php行を変更する必要があります。

$root = $root ?: $this->request->root();

これに:

$root = $this->request->root($root);

これにより、laravel がサブフォルダーを自動的に検出して正しく処理できるようになるため、標準の URL メソッドを使用できるようになります。

于 2014-08-12T16:41:21.303 に答える
0

最初に、仮想ホストまたは Web サーバー (Apache または ...) のエイリアスを使用して、URL の /public/ 部分を非表示にする必要があります。エントリ ポイント ( http://some.host/alias/またはhttp://some.virtual.host/ ) は、パブリック フォルダー (つまり、/whatever/path/myapp/public/) に直接つながる必要があります。

次に、ルートを使用すると、残りの作業を簡単に行うことができます。ルート

Route::get('update_users', "UsersController@updateAction")

http://whatever.host/update_usersを正しいアクションにリダイレクトします。見苦しい形式は必要ありません。

于 2014-11-13T19:57:04.160 に答える
0

URL::to() 関数を使用できます。Laravel は RESTful API または RESTful ルーティングをサポートしています。したがって、このようなルーティングを使用することはお勧めできません

// for view (GET)
Route::get('users', function(){
   View::make('users');
});

Route::post('users', function(){
  // do form validation and process here or call a function from controller
});

次に、フォームの使用で、

echo Form::open();
// form elements
echo Form::close();
于 2013-09-18T09:20:51.623 に答える