2014-09-04 1 views
1

블레이드 템플릿 내에서 리소스 링크를 참조하는 "Laravel"방식을 이해하려고합니다.Laravel의 블레이드 템플릿 내에서 편안한 리소스에 연결하는 방법은 무엇입니까?

컨텍스트는 내가 만들고있는 CRUD 관리자 패널입니다. URL은 다음과 같습니다.

"list" camera resources: 
    /admin/cameras 

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

이러한 항목은 정상적으로 작동합니다.

내 routes.php 다음 "목록"행동에 대한 템플릿에서

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

는, 그 자원에 대한 "쇼"조치에 가서 각 행에 링크를 추가하기 위해 노력하고있어. 뷰/카메라/index.blade.php의 현재 작업 코드 :

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

... 여기서 $ r은 둘러싼 루프의 '반복자'입니다. 당연히 이것은 위의 "쇼"와 같은 URL을 생성합니다.

link_to_route 또는 link_to_action을 사용하는 것이 더 깔끔한 방법 인 것처럼 보이지만, 나는별로 운이 없었습니다. 지금까지 읽은 것을 바탕으로 자원에 명명 된 라우트를 설정할 수있는 것 같지 않습니다. 코드가 최적 이상입니까? 아니면 Laravel이 여기에 제안 할만한 좀 더 우아한 점이 있습니까?

참고 : 비슷한 질문을했지만 내 '리소스'경로에만 해당됩니다. 자동으로 경로를 할당 laravel.com/docs/controllers#resource-controllers의 자원 FUL 경로를 보면

+1

는 Laravel가 경로 이름을 지정할 것 당신의 자원. 그래서 당신의 쇼 루트는'link_to_route ('admin/cameras.show', $ v, array ('id'=> $ r [ 'id']))' – JofryHS

+0

과 같은 것이 될 것입니다. @JofryHS : 이미 배정 된 답변으로 게시하면 공식 답변으로 확인하겠습니다. 감사! – PeterG

+0

내가 언급하는 것을 잊어 버린 또 다른 점은,'/ admin /'으로 시작하는 경로가 거의 없다면 경로를 접두사로 넣는 것이 좋습니다. http://laravel.com/docs/routing#route-prefixing 코딩 즐기기. :) – JofryHS

답변

3

처럼 할 수 있습니다 이름 :

+-----------+---------------------------+---------+------------------+ 
| 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 인 경우 에드 admin/cameras

resource를 대체하고 경로에 대한 링크 생성하기 : 당신이 http://laravel.com/docs/controllers#resource-controllers 보면

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()) 
관련 문제