2016-11-22 51 views
0

我翻译了url,我需要重定向到特定的控制器函数,但我还需要传递一个确切的参数。Laravel将确切参数传递给路由

例如,我想显示所有的足球新闻,但在网址中我没有体育足球的ID(id = 1),所以我需要将参数id = 1传递给index()函数。

Route::get('/football-news/', ['as' => 'news.index', 'uses' => '[email protected]']); 

它不是一个通过'足球'作为参数的选项,因为它只是一个例子。真正的路由转换和代码看起来像这样:

Route::get(LaravelLocalization::transRoute('routes.football.news'), ['as' => 'news.index', 'uses' => '[email protected]']); 

回答

1

假设你有一个NewsController获取所有的新闻像

class NewsController extends Controller 
{ 
public function index() 
{ 
    $news = News::all(); //you have to create News model 
    return view('news.index', compact('news')); //use to pass data in view 
} 

public function show($id) 
{ 
    $news_detail=News::find($id); //to fetch detail of news from database 

    return view('news.show', compact('news_detail')); 
} 
} 

创建视图的index.php和show.php /新闻文件夹。在使用的index.php

@foreach($news as $news_item) 
<div> 
    <a href="/news/{{$news_item->id}}">{{ $news_item->title }}</a> 
</div> 
@endforeach 

这里 “/新闻/ {{$ news_item-> ID}}”,你可以通过特定的消息ID为路由文件。 在show.php

<h1>news</h1> 
<h1> 
{{ $news_detail->title }} 
</h1> 
<ul class="list-group"> 
@foreach($news_detail->detail as $details) 
    <li class="list-group-item">{{$details}}</li> 
@endforeach 
</ul> 

在路由文件

Route::get('/news/{news}', '[email protected]'); 

现在你必须创建秀($ ID)在NewsController.php函数的参数是ID。

0

您可以将索引网址与?id=1参数(例如domain.com ID = 1?),并通过使用Request::get('id');

例如让它在你的索引控制器动作:

网址模板文件:

<a href="domain.com?id=1" /> 

在你NewsController:

public function index(Request $request){ 
    $id = $request->get('id'); 
} 

即使您没有在路径文件中指定通配符,您也应该可以访问该参数。


编辑: 你将不得不调用不同的@action为不同的路线。你可以传入一个id通配符。 例如,在路由文件:

Route::get('tennis-news/{id}', '[email protected]'); 
Route::get('football-news/{id}', '[email protected]'); 

然后在NewsControlleryou必须有公共方法tennisIndex($id)footballIindex($id),这些方法将有机会获得您的路线设置的通配符。

例如,在NewsController

public function tennisIndex($id){ 
    $tennnis_news = News::where('sport'='tennis)->where('id', $id)->get(); 
    return view('tennis_news', compact('tennnis_news')); 
} 
+0

但是是可以告诉routes.php文件,在网址/足球新闻情况下,/它应该使用NewsController @指数(1),以防/ tennis-新闻/它应该使用索引(2)等? –

+0

我已经添加了关于您的评论的一些编辑。 –

相关问题