2017-08-24 14 views
0

私はLaravelチュートリアルを実行していますが、「未定義関数呼び出し」エラーが発生しました。今まで私は28のアサーションで20のテストを受けていますが、このテストだけが失敗します。私は私のタイプミスを見つけることができません。どのようなソースコードを追加してくださいか教えてください。私はララヴェルの新人です。Laravel Testing:未定義の関数App Http Controllers get()を呼び出す

λ 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. 

入力が必要ですが、見つからない場合があります。

ReadThreadsT​​est.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}', '[email protected]'); 

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); 
    } 
} 
+0

完全なReadThreadsT​​estクラスを表示できますか? –

+0

'$ this-> get( '/ threads /'。$ channel-> slug)'は動作しません。そのURLで 'GET'リクエストを呼び出そうとするなら、' Guzzle'のようなHTTPクライアントを使わなければなりません。 –

+0

私は誤ってタイプミスを見つけました。このトークン ">"が見つかりませんでした: ' - > latest() - get()'とにかくありがとう! –

答えて

0

私は...

この検索数時間後にfinaly私のタイプミスを見つけた:

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

必見be:

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

すべてが機能します。

+0

解決策が誤字を訂正する場合は、質問を削除するだけです。 – Kyslik

+0

私はこのメッセージを受け取りました:「回答された質問を削除すると、あなたのアカウントは尋ねられないようになります。本当に削除してもよろしいですか?それがちょうどタイプミスか、チュートリアルのこの例が私のlaravelバージョンではうまくいかないかどうかは分かりませんでした。 Laravelは私にこの誤植を見つけるのを助ける構文エラーまたは別のエラーを表示しませんでした。 –

関連する問題