2016-11-22 129 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

我已經添加了關於您的評論的一些編輯。 –