【问题标题】:using url helper issue in laravel 5在 laravel 5 中使用 url helper 问题
【发布时间】:2015-05-24 14:07:56
【问题描述】:

我会设置一条新路线

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 未定义。

你有什么解决办法吗?非常感谢。

【问题讨论】:

    标签: url laravel helper


    【解决方案1】:

    您在这里使用了错误的助手。如果要通过名称引用路由,请使用route()

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

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

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

    【讨论】:

    • 您好,感谢您的快速回答。正如您所建议的,我使用了正确的 url 帮助程序,但是当我单击链接时,我仍然无法从“PostController.php”获取返回值。当我点击链接时,我应该得到返回的 slug 值,还是应该? ..谢谢
    • 并非如此。使用您当前的控制器代码,您正在尝试呈现名称为$slug 的视图。您想要的只是 return $slug 返回 slug 值。
    • 我也试过了,也将其呼应出来,但似乎无法以某种方式通过控制器。不过谢谢,我认为主要问题已经解决了。
    • 点击链接后看到的网址是什么?
    • 网址为:localhost/laravel/public/posts/radost。 slug 包含单词“radost”,因此它读取 slug 变量
    猜你喜欢
    • 2015-06-03
    • 1970-01-01
    • 1970-01-01
    • 2016-05-14
    • 1970-01-01
    • 2020-01-08
    • 1970-01-01
    • 2011-09-19
    • 2023-03-08
    相关资源
    最近更新 更多