20

誰かが Laravel 4 UrlGenerator クラスの構文を説明できますか? 私はドキュメントでそれを見つけることができません。

私は次のルートを持っています:

Route::resource('users', 'UsersController');

これを理解するのに長い時間がかかりました:

{{ Url::action('UsersController@show', ['users' => '123']) }}

目的の html を生成します。

http://localhost/l4/public/users/123

UrlGenerator.php を調べました

/**
 * Get the URL to a controller action.
 *
 * @param  string  $action
 * @param  mixed   $parameters
 * @param  bool    $absolute
 * @return string
 */
public function action($action, $parameters = array(), $absolute = true)

..しかし、それは私をさらに先に進めません。

何を渡すことができ$parametersますか?

私は今それが機能することを知ってい['users' => '123']ますが、これの背景は何ですか? また、データを渡す他の方法はありますか?

4

3 に答える 3

20

実際には、配列のキーとしてパラメーターの名前を指定する必要はありません。私が覚えている限り、名前が指定されていない場合、置換は左から右に行われます。

例として、リソース コントローラーのルート定義は次のようになります。

/users/{users}

したがって、 のようURL::action('UsersController@show', ['123'])に生成された URLlocalhost/project/public/users/123は、既に作成されているのと同じように URL を生成します。

したがって、渡しているのは、URL を正しく生成するために必要なパラメーターです。リソースがネストされている場合、定義は次のようになります。

/users/{users}/posts/{posts}

URL を生成するには、ユーザー ID と投稿 ID の両方を渡す必要があります。

URL::action('UsersPostsController@show', ['123', '99']);

URLは次のようになりますlocalhost/project/public/users/123/posts/99

于 2013-04-22T07:58:17.683 に答える
11

リソースを操作するときに URL を生成するより良い方法があります。

URL::route('users.index') // Show all users links to UserController@index

URL::route('users.show',$user->id) // Show user with id links to UserController@show($id)

URL::route('users.create') // Show Userform links to UserController@create

URL::route('users.store') // Links to UserController@store

URL::route('users.edit',$user->id) // Show Editform links to UserController@edit($id)

URL::route('users.update',$user->id) // Update the User with id links to UserController@update($id)

URL::route('users.destroy',$user->id) // Deletes a user with the id links to UserController@destroy

問題が解決することを願っています。これに関するいくつかのドキュメントはここにありますhttp://laravel.com/docs/controllers#resource-controllers

于 2013-07-03T08:29:05.840 に答える