我想通过“name
”将我的“/nameID
”链接到其他页面。
例如:<a href='./2'>number 2</a>
我试过了:
@foreach($adverts as $advert)
{{link_to_route('adverts', $advert->name, array($advert->id))}}
@endforeah
它返回给我:<a href="http://localhost:8000/?2">
,但我需要<a href="http://localhost:8000/2">
。
我哪里错了?
更多详情:
模型/ 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'));
控制器/ 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'
只是路线的特定名称,不是吗?
答案 0 :(得分:1)
您需要更改路径定义并添加路径参数:
$('#yourSpanID').textContent = readUser.name;
答案 1 :(得分:1)
你使用了错误的路线。您应该使用advert
(单数),因为这是带参数的路径。如果您尝试使用索引路由(adverts
),它会将任何其他参数作为查询字符串添加。
所以鉴于你有这些路线:
Route::get('/', array('as'=>'adverts', 'uses'=>'advertsController@index'));
Route::get('/{id}', array('as'=>'advert', 'uses'=>'advertsController@info'));
如果您想要链接到单个广告,则需要使用以下内容:
{{ link_to_route('advert', $advert->name, array($advert->id)) }}
另外,您可能需要查看resource controllers。它们非常适合这样的情况,您希望一个路径/视图列出资源,另一个路径/视图查看特定资源的详细信息。