在 laravel 5 中使用 url 帮助问题
using url helper issue in laravel 5
我会设置一条新路线
Route::get('/posts/{slug}', [
'as'=>'postshow',
'uses'=>'PostController@getShow'
]);
我还创建了一个控制器:
class PostController extends Controller
{
public function getShow($slug)
{
return view($slug);
}
}
我在 home.blade.phpin 中实现了它,我正在使用 url 助手:
@extends('templates.default')
@section('content')
@if($posts->count())
@foreach($posts as $post)
<article>
<h2><a href="{{$url=action('postshow',$post->slug)}}">{{$post->title}}</a></h2>
{!!Markdown::parse(str_limit($post->body, $limit=250, $end="..."))!!}
<a href="">Read more &arr; </a>
</article>
@endforeach
@endif
@stop
它在 laravel 4 中运行良好,但在 laravel 5 中不起作用。我得到的错误是,我在创建路由时定义的 'postshow' 未定义。
Action App\Http\Controllers\postshow not defined.
你有什么解决办法吗?非常感谢。
您在这里使用了错误的助手。如果您想通过名称引用路线,请使用 route()
:
{{ $url=route('postshow',$post->slug) }}
如果你想使用 action()
你必须传递控制器的名称和方法:
{{ $url=action('PostController@getShow',$post->slug) }}
我会设置一条新路线
Route::get('/posts/{slug}', [
'as'=>'postshow',
'uses'=>'PostController@getShow'
]);
我还创建了一个控制器:
class PostController extends Controller
{
public function getShow($slug)
{
return view($slug);
}
}
我在 home.blade.phpin 中实现了它,我正在使用 url 助手:
@extends('templates.default')
@section('content')
@if($posts->count())
@foreach($posts as $post)
<article>
<h2><a href="{{$url=action('postshow',$post->slug)}}">{{$post->title}}</a></h2>
{!!Markdown::parse(str_limit($post->body, $limit=250, $end="..."))!!}
<a href="">Read more &arr; </a>
</article>
@endforeach
@endif
@stop
它在 laravel 4 中运行良好,但在 laravel 5 中不起作用。我得到的错误是,我在创建路由时定义的 'postshow' 未定义。
Action App\Http\Controllers\postshow not defined.
你有什么解决办法吗?非常感谢。
您在这里使用了错误的助手。如果您想通过名称引用路线,请使用 route()
:
{{ $url=route('postshow',$post->slug) }}
如果你想使用 action()
你必须传递控制器的名称和方法:
{{ $url=action('PostController@getShow',$post->slug) }}