怎么修 ?在 link 而不是 /
How to fix ? on the link instead of /
我想通过“/nameID
”link将我的“name
”转到其他页面。
例如:<a href='./2'>number 2</a>
我试过了:
@foreach($adverts as $advert)
{{link_to_route('adverts', $advert->name, array($advert->id))}}
@endforeah
它returns我:<a href="http://localhost:8000/?2">
,但我需要<a href="http://localhost:8000/2">
。
我哪里错了?
更多详情:
models/advert.php
class advert extends Eloquent {
protected $table = 'adverts';
}
routes.php
Route::get('/', array('as'=>'adverts', 'uses'=>'advertsController@index'));
Route::get('/{id}', array('as'=>'advert', 'uses'=>'advertsController@info'));
controllers/advertsController.php
public function index() {
return View::make('adverts.index')
->with('adverts', advert::All());
}
public function info($id) {
return View::make('adverts.info')
->with('advert', advert::find($id));
}
当我将第二条路线更改为 'as'=>'adverts'
时,它工作正常。但我不知道它为什么有效。如果我理解清楚,'as'=>'advert'
只是路由的具体名称,不是吗?
您需要更改路由定义并添加路径参数:
Route::get('/', array('as'=>'adverts', 'uses'=>'advertsController@index'));
Route::get('/{id}', array('as'=>'advert', 'uses'=>'advertsController@info'));
{{link_to_route('advert', array('id' => $advert->id))}}
你用错了路线。您应该使用 advert
(单数),因为这是采用参数的路由。如果您尝试使用索引路由 (adverts
),它会将任何其他参数添加为查询字符串。
假设您有这些路线:
Route::get('/', array('as'=>'adverts', 'uses'=>'advertsController@index'));
Route::get('/{id}', array('as'=>'advert', 'uses'=>'advertsController@info'));
如果你想link个人广告,你需要使用这个:
{{ link_to_route('advert', $advert->name, array($advert->id)) }}
此外,您可能想看看 resource controllers。它们非常适合这样的情况,您希望一个 route/view 列出资源,另一个 route/view 查看特定资源的详细信息。
我想通过“/nameID
”link将我的“name
”转到其他页面。
例如:<a href='./2'>number 2</a>
我试过了:
@foreach($adverts as $advert)
{{link_to_route('adverts', $advert->name, array($advert->id))}}
@endforeah
它returns我:<a href="http://localhost:8000/?2">
,但我需要<a href="http://localhost:8000/2">
。
我哪里错了?
更多详情:
models/advert.php
class advert extends Eloquent {
protected $table = 'adverts';
}
routes.php
Route::get('/', array('as'=>'adverts', 'uses'=>'advertsController@index'));
Route::get('/{id}', array('as'=>'advert', 'uses'=>'advertsController@info'));
controllers/advertsController.php
public function index() {
return View::make('adverts.index')
->with('adverts', advert::All());
}
public function info($id) {
return View::make('adverts.info')
->with('advert', advert::find($id));
}
当我将第二条路线更改为 'as'=>'adverts'
时,它工作正常。但我不知道它为什么有效。如果我理解清楚,'as'=>'advert'
只是路由的具体名称,不是吗?
您需要更改路由定义并添加路径参数:
Route::get('/', array('as'=>'adverts', 'uses'=>'advertsController@index'));
Route::get('/{id}', array('as'=>'advert', 'uses'=>'advertsController@info'));
{{link_to_route('advert', array('id' => $advert->id))}}
你用错了路线。您应该使用 advert
(单数),因为这是采用参数的路由。如果您尝试使用索引路由 (adverts
),它会将任何其他参数添加为查询字符串。
假设您有这些路线:
Route::get('/', array('as'=>'adverts', 'uses'=>'advertsController@index'));
Route::get('/{id}', array('as'=>'advert', 'uses'=>'advertsController@info'));
如果你想link个人广告,你需要使用这个:
{{ link_to_route('advert', $advert->name, array($advert->id)) }}
此外,您可能想看看 resource controllers。它们非常适合这样的情况,您希望一个 route/view 列出资源,另一个 route/view 查看特定资源的详细信息。