【问题标题】:Slug not work properly蛞蝓不能正常工作
【发布时间】:2017-05-11 17:44:53
【问题描述】:

我尝试在管理员上使用 laravel 创建 slug,但在前端也可以查看它的工作,除了一个问题,我有四篇文章,在管理员上工作得很好,但是在查看前端时,它总是打开同一篇文章,甚至很难slug 是不同的 URL。

控制器代码

public function singleArticle($slug){

    Article::where('slug', '=', $slug)->increment('viewed');




    $navi['country'] = Country::get();
    $navi['genre'] = Genre::get();


    $articles = Article::orderBy('created_at','desc')->limit(3)->get();
    $latest_movies = Movie::where('type', '=', 'movie')->orderBy('created_at','desc')->limit(4)->get();
    $latest_tv = Movie::where('type', '=', 'tv')->orderBy('created_at','desc')->limit(4)->get();
    $most_viewed_movies = Movie::where('type', '=', 'movie')->orderBy('viewed','desc')->limit(3)->get();
    $most_viewed_tv = Movie::where('type', '=', 'tv')->orderBy('viewed','desc')->limit(4)->get();

    $most_viewed_article = Article::orderBy('created_at','desc')->orderBy('viewed','desc')->limit(4)->get();



    $article = Article::where('slug', '=', $slug)->first();

用于视图前端

 @if(count($articles) > 0)
            <div class="articles_list">
                @foreach($articles as $article)
                 <div class="col-md-6">
                    <div class="article_item row">
                        <div class="article_info">
                            @if($article->thumb)
                            <a href="{{route('articles.single',$article->slug)}}"><img class="img-responsive" src="{{ url(Image::url($article->thumb,350,200,array('crop'))) }}" alt="{{$article->title}}">
                            @else
                            {{-- <img class="img-responsive" src="{{ url(Image::url($article->thumb,250,250,array('crop'))) }}" alt="{{$article->title}}"> --}}
                            @endif
                            <div class="artice_title"><h3>{{$article->title}}</h3></div>
                            <div class="article_time">                                
                            <span class="author">By Admin</span>
                            <span class="cateogry">Category</span>
                            <span class="time">{{date('F d, Y', strtotime($article->created_at))}} </a></span></div>
                            <!--<div class="article_descr">
                                <?php echo  mb_substr($article->content, 0, 200) . ' ...'; ?>
                            </div>
                        <a class="btn btn-default read_more" href="{{route('articles.single',$article->id)}}">Read more</a> -->
                        </div>
                        </div>
                    </div>
                @endforeach
            </div>
            <div class="clearfix"></div>
            <div class="text-center col-xs-12">
                {{$articles->links()}}
            </div>
        @else
        <div class="col-xs-12">
            Nothing found in there
        </div>
        @endif

用于路由以下代码:

    // Category
Route::get('category/{slug}', ['as' => 'category.index', 'uses' => 'CommonController@categoryIndex']);

// Articles
Route::get('articles', ['as' => 'articles.index', 'uses' => 'CommonController@articleIndex']);

// Specific article
Route::get('articles/{slug}', ['as' => 'articles.single', 'uses' => 'CommonController@singleArticle']);

之前谢谢。

【问题讨论】:

  • 代码格式化很重要,在提问时总是这样做。

标签: php laravel laravel-5.3


【解决方案1】:

这只是命名约定的问题。请为变量选择不同的名称。

  1. @foreach($articles as **$article**). 你认为有 $article 变量。

    1. **$article** = Article::where('slug', '=', $slug)-&gt;first(); 它在您的控制器中。所以这只是因为冲突。

【讨论】:

    猜你喜欢
    • 2017-02-25
    • 1970-01-01
    • 2016-03-31
    • 2014-07-30
    • 2016-06-02
    • 2021-04-04
    • 2014-04-02
    • 2016-07-22
    • 2011-02-09
    相关资源
    最近更新 更多