我建立了一条新路线
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未定义。
你有解决方法吗?我非常感激。
答案 0 :(得分:0)
你在这里使用了错误的助手。如果要按名称引用路线,请使用route()
:
{{ $url=route('postshow',$post->slug) }}
如果你想使用action()
,你必须传递控制器的名称和方法:
{{ $url=action('PostController@getShow',$post->slug) }}