我在这个论坛上已经阅读了其他问题来解决这个问题,但没有任何帮助。
我只在一个文件夹中收到此错误,其他文件夹laravel工作完美没有错误。 错误是:
Symfony \ Component \ HttpKernel \ Exception \ NotFoundHttpException
我使用的代码。 homa.blade.php
<section>
<h2><a href="{{ URL::action('post-show', $post->slug) }}">{{ $post->title }}</a></h2>
{{ Markdown::parse(Str::limit($post->body, 300)) }}
<a href="{{ URL::action('post-show', $post->slug) }}">Read more →</a>
</section>
routes.php文件
Route::get('/posts/{$slug}', array(
'as' => 'post-show',
'uses' => 'PostController@getShow'
));
和控制器是PostController.php
<?php
class PostController extends BaseController {
public function getShow($slug) {
echo 'Tets';
}
}
这是我的所有代码。
答案 0 :(得分:2)
实际上您应该使用(从$
删除{$slug}
):
Route::get('/posts/{slug}', array(
'as' => 'post-show',
'uses' => 'PostController@getShow'
));
同样改变:
<a href="{{ URL::action('post-show', $post->slug) }}">Read more →</a>
对此:
<a href="{{ URL::route('post-show', $post->slug) }}">Read more →</a>
或使用route
辅助函数:
<a href="{{ route('post-show', $post->slug) }}">Read more →</a>
答案 1 :(得分:1)
URL::action
(顾名思义)期待一个动作,而不是你传递的路线名称。
public string action(string $ action,mixed $ parameters = array(),bool $ absolute = true)
你应该使用route():
URL::route('post-show', array($post->slug))
public string route(string $ name,mixed $ parameters = array(),bool $ absolute = true,Route $ route = null)