2017-10-05 3 views
0

동적 경로에 문제가 있습니다.Laravel 5.5에서 동적 경로가 작동하지 않습니다.

방금 ​​게시글에 좋아요 값을 추가하려고 시도했습니다.

web.php

Route::get('post/{$id}/like', '[email protected]')->name('post.like'); 
Route::resource('post', 'PostController'); 

그리고 난 자원 제어기 PostControleler 1 개 맞춤 방법을 정의한다.

PostController @ 블레이드 PHP를보기

public function like($id) 
{ 
    $post = Post::find($id); 
    $post->likes++; 
    $post->save(); 
    return redirect()->back(); 
} 

및 링크처럼

<a href="{{route('post.like', $post)}}" class="btn btn-success btn-xs">Like</a> 

아무것도 일어나지, 링크를 클릭, 단지

Sorry, the page you are looking for could not be found. 

왜 (404)를 표시 동적 경로가 작동하지 않습니다.

P. 대신 처럼 사전에

감사합니다 (이 사용자 지정 방법은, 무언가에 의해 코드 자체가 작동을 방해하는 것을 의미) 표시에 내가 방법을 바꿀 경우

그 코드가 작동합니다.

+0

는이 Like

+0

네, 이미 이전에 그것을 사용하려고하지 아무것도 여전히 404 방법이 성공을 정의 의미하지만, 값이 incereased되지 않고 표시되지 뷰 그건 단지 404 –

답변

0

당신은 $ 귀하가 데이터를 보내 여기에 (우편으로 도착이 id 값의 $ 포스트 게시하거나 $post->id

<a href="{!! route('post.like', [$post]) !!}" class="btn btn-success btn-xs">Like</a> 

과 변화로 교체하는 경우 슈어 아래이하여 HREF를 교체 할 필요가 당신이)

Route::post('/post/{$id}/like', '[email protected]')->name('post.like'); 
+0

할까요 어떤 방법으로도 일할 수 있습니다. 나는 모든 메소드를 기본 메소드 show와 같이 리소스 컨트롤러 'PostController'에서 보여 주며 작동한다. 사용자 지정 메서드의 작업을 방해하는 요인은 무엇입니까? –

+0

아니, 여기에 당신이 좋아하는 열 값을 업데이 트하는 방법과 같은 $ id를 보내드립니다, 그럴 경우, 게시 방법을 사용해야합니다. web.php의 경로를 다음과 같이 변경하십시오 :'Route :: resource ('post', 'PostController'); Route :: get ('post/{$ id}/like', 'PostController @ like') -> 이름 ('post.like'), ' –

+0

네,하지만 post 메소드로도 작동하지 않습니다. Tryied :: 어떤 방법, 같은 ... 내가 무언가가 resourse 메서드를 사용하여 사용자 정의 메서드를 사용하지 못하도록한다고 생각한다. (코드가 작동하고 값도 증가한다.) –

0

젠장 $ id를 게시 할 예정입니다 의미 서버는 .... 난 그냥 사용자 정의 경로에 $ 기호를 삭제 잊어 버렸습니다.

은 다음과 같아야합니다

Route::get('post/{post}/like', '[email protected]')->name('post.like'); 
관련 문제