Laravel 测试:调用未定义函数 App\Http\Controllers\get()

Laravel Testing : Call to undefined function App\Http\Controllers\get()

我正在学习 Laravel 教程,但遇到了 "Call to undefined function" 错误。到目前为止,我有 20 个测试和 28 个断言,只有这个测试失败了。我找不到我的错别字。请告诉我我必须添加什么源代码。我是 Laravel.

的新手
λ vendor\bin\phpunit --filter a_user_can_filter_threads_according_to_a_channel
PHPUnit 5.7.21 by Sebastian Bergmann and contributors.

E                                                                   1 / 1 (100%)

Time: 409 ms, Memory: 14.00MB

There was 1 error:

1) Tests\Feature\ReadThreadsTest::a_user_can_filter_threads_according_to_a_channel
Symfony\Component\Debug\Exception\FatalThrowableError: Call to undefined function App\Http\Controllers\get()

ERRORS!
Tests: 1, Assertions: 0, Errors: 1.

一定是打错了,可是我找不到。

ReadThreadsTest.php

/** @test */
public function a_user_can_filter_threads_according_to_a_channel()
{
    $channel = create('App\Channel');
    $threadInChannel = create('App\Thread', ['channel_id' => $channel->id]);
    $threadNotInChannel = create('App\Thread');

    $this->get('/threads/' . $channel->slug)
        ->assertSee($threadInChannel->title)
        ->assertDontSee($threadNotInChannel->title);
}

web.php

Route::get('threads/{channel}', 'ThreadsController@index');

Channel.php

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Channel extends Model
{
    public function getRouteKeyName()
    {
        return 'slug';
    }

    public function threads()
    {
        return $this->hasMany(Thread::class);
    }

}

ThreadController.php

public function index(Channel $channel)
{

    if ($channel->exists)
    {
        $threads = $channel->threads()->latest()-get();
    } else {
        $threads = Thread::latest()->get();
    }

    return view('threads.index', compact('threads'));
} 

Thread.php

<?php


namespace App;

use Illuminate\Database\Eloquent\Model;


class Thread extends Model
{

    protected $guarded = [];

    public function path()
    {
        return "/threads/{$this->channel->slug}/{$this->id}";
    }

    public function replies()
    {
        return $this->hasMany(Reply::class);
    }

    public function creator()
    {
        return $this->belongsTo(User::class, 'user_id');
    }

    public function channel()
    {
        return $this->belongsTo(Channel::class);
    }

    public function addReply($reply)
    {
        $this->replies()->create($reply);
    }
}

经过几个小时的搜索,我终于发现了我的拼写错误...

这个:

    $threads = $channel->threads()->latest()-get();

必须是:

    $threads = $channel->threads()->latest()->get();

现在一切正常。