在 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) }}