2014-09-04 113 views
1

我試圖找出指向刀片模板中資源鏈接的「Laravel」方式。如何鏈接到Laravel的Blade模板中的寧靜資源?

上下文是我正在構建的CRUD管理控制檯。網址如下:

"list" camera resources: 
    /admin/cameras 

"show" a camera resource: 
    /admin/cameras/12 

這些工作正常。

我routes.php文件:

Route::resource('admin/cameras', 'MyAdmin\\Controllers\\CamerasController'); 

在模板中的「名單」的動作,我想加在每一行上的鏈接進入該資源的「作秀」行爲。我目前在視圖/ cameras/index.blade.php中的工作代碼:

<span>{{ link_to('/admin/cameras/'.$r['id'], $v); }}</span> 

...其中$ r是封閉循環中的'迭代器'。這自然會產生一個像上面的「show」一樣的url。

這似乎是一個更清潔的方式將使用link_to_route或link_to_action,但我沒有太多運氣。根據我目前閱讀的內容,似乎無法在資源上設置命名路由。代碼是否優於或者Laravel在這裏提供了更優雅的東西?

注:我已經看到一些類似的問題,但我的具體到'資源'路線。

+1

如果你看看http://laravel.com/docs/controllers#resource-controllers Laravel將指定路線名稱你的資源。所以你的演出路線就像'link_to_route('admin/cameras.show',$ v,array('id'=> $ r ['id']))' – JofryHS 2014-09-04 11:37:56

+0

@JofryHS:啊,我錯過了那些名字已經分配。如果您發佈答案,我會將其作爲正式答案進行檢查。謝謝! – PeterG 2014-09-04 12:39:43

+0

我忘記提及的另一件事情,如果它們中的很少一部分以'/ admin /'開頭,那麼它也可能是一個很好的練習方式來爲你的路由加上前綴。 http://laravel.com/docs/routing#route-prefixing享受編碼。 :) – JofryHS 2014-09-05 09:11:30

回答

3

如果你看看laravel.com/docs/controllers#resource-controllers資源-FUL路由自動分配路線名稱:

+-----------+---------------------------+---------+------------------+ 
| Verb |   Path   | Action | Route Name | 
+-----------+---------------------------+---------+------------------+ 
| GET  | /resource     | index | resource.index | 
| GET  | /resource/create   | create | resource.create | 
| POST  | /resource     | store | resource.store | 
| GET  | /resource/{resource}  | show | resource.show | 
| GET  | /resource/{resource}/edit | edit | resource.edit | 
| PUT/PATCH | /resource/{resource}  | update | resource.update | 
| DELETE | /resource/{resource}  | destroy | resource.destroy | 
+-----------+---------------------------+---------+------------------+ 

因此,如果您的資源名稱是admin/cameras,那麼您只需編輯替代resourceadmin/cameras

並生成鏈接路線:

link_to_route('admin/cameras.show', $v, array('id' => $r['id'])) 
0

你可以簡單的狀態

Route::[action]('admin/cameras',array('as' => 'name.route','uses' => function(){ })) 

那麼你可以不喜歡

link_to_route('name.route',$title,$paramerter=array(),$attirbutes=array())