Laracasts教程:方法“ Latest()”是否已删除?

时间:2018-07-18 08:46:56

标签: php laravel laravel-query-builder

最新版本的Laravel中是否删除了Controllers中使用的“最新”方法?

在PHP Storm中,出现以下错误:
在App / Thread中找不到方法Latest()。

public function index()
    {
        //
        $threads = Thread::latest()->get();
        return view('threads.index', compact('threads'));
    }

我正在关注LaraCasts教程,并且浏览至所述页面会出现以下错误。 -> forum.test /线程。

ErrorException(E_ERROR) 方法Illuminate \ Database \ Query \ Builder :: path不存在。 (视图:D:\ xampp \ htdocs \ forum \ resources \ views \ threads \ index.blade.php)

根据要求,我的观点:位于resources / views / threads / index.blade.php

@extends('layouts.app')
@section('content')
    <div class="container">
        <div class="row">
            <div class="col-md-8 col-md-offset-2">
                <div class="panel panel-default">
                    <div class="panel-heading">Forum Threads</div>

                    <div class="panel-body">
                        @foreach ($threads as $thread)
                            <article>
                                <h4>
                                    <a href="{{ $thread->path() }}">
                                        {{ $thread->title }}
                                    </a>
                                </h4>
                                <div class="body">{{ $thread->body }}</div>
                            </article>
                            <hr/>
                        @endforeach
                    </div>

                </div>
            </div>
        </div>
    </div>
@endsection

另外,我的路线。

<?php
Route::get('/', function () {
    return view('welcome');
});

Route::resource('threads', 'ThreadController');
Auth::routes();
Route::get('/home', 'HomeController@index')->name('home');

1 个答案:

答案 0 :(得分:2)

该错误与您发布的代码无关。 Method Illuminate\Database\Query\Builder::path does not exist.。您正在调用某处不存在的path方法。

要回答您的问题,(当前)最新版本的Laravel 5.6中仍然存在方法latest()https://laravel.com/api/5.6/Illuminate/Database/Query/Builder.html#method_latest

我的猜测是您对Thread模型关系的配置不正确。您很可能没有定义path()关系。

请参见以下类似问题的答案:https://stackoverflow.com/a/37934093/1885946