在laravel 5

时间:2015-05-24 14:07:57

标签: url laravel helper

我建立了一条新路线

Route::get('/posts/{slug}', [
        'as'=>'postshow',
        'uses'=>'PostController@getShow'
    ]);

我还创建了一个控制器:

class PostController extends Controller
{
        public function getShow($slug)
        {
            return view($slug);
        }
}

我在home.blade.phpin中实现了它,我使用了url helper:

@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中完成这项工作。我得到的错误是,&#39; postshow&#39;,我定义为我正在创建路线,没有定义。

  

操作App \ Http \ Controllers \ postshow未定义。

你有解决方法吗?我非常感激。

1 个答案:

答案 0 :(得分:0)

你在这里使用了错误的助手。如果要按名称引用路线,请使用route()

{{ $url=route('postshow',$post->slug) }}

如果你想使用action(),你必须传递控制器的名称和方法:

{{ $url=action('PostController@getShow',$post->slug) }}