Laravel错误Symfony \ Component \ HttpKernel \ Exception \ NotFoundHttpException

时间:2014-06-23 11:59:41

标签: php laravel

我在这个论坛上已经阅读了其他问题来解决这个问题,但没有任何帮助。

我只在一个文件夹中收到此错误,其他文件夹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 &rarr;</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';
    }
}

这是我的所有代码。

2 个答案:

答案 0 :(得分:2)

实际上您应该使用(从$删除{$slug}):

Route::get('/posts/{slug}', array(
    'as' => 'post-show',
    'uses' => 'PostController@getShow'
));

同样改变:

<a href="{{ URL::action('post-show', $post->slug) }}">Read more &rarr;</a>

对此:

<a href="{{ URL::route('post-show', $post->slug) }}">Read more &rarr;</a>

或使用route辅助函数:

<a href="{{ route('post-show', $post->slug) }}">Read more &rarr;</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)