2016-12-01 9 views
0

メインページ/インデックス で質問を見ることができるようになりました。メインURLの後にユーザーが名前を入力すると、そのようになります。 /index/username そのユーザーが存在する場合、すべての質問が表示されますが、存在しない場合はエラーが発生し、ユーザーが存在しない場合はメインページにリダイレクトします。Laravel RedirectとUndefined Variabale

//method for get to index 
public function getIndex($author = NULL) { 
    //if user not nulll 
    if (!is_null($author)) { 
     //we get name of author 
     $quote_author = Author::where('name',$author)->first(); 

     if ($quote_author) { 
      //set all quote by that name and also set 6 for each page 
      $quotes = $quote_author->quotes()->orderBy('created_at','desc')->paginate(6); 
     } 
    } else { 
     $quotes = Quote::orderBy('created_at','desc')->paginate(6); 
    } 
    return view('index',['quotes'=>$quotes]); 
} 

と私は取得エラーです:

ErrorException in QuoteController.php line 27: Undefined variable: quotes

+0

このエラーメッセージは、通常、その内容を正確に示しています。 –

答えて

0

変数$quotesは、関数のすべてのパスに作成されていないここに私のコードです。変数が常に利用可能であることを確認する必要があります。

ifの前に変数を定義して、$quote = null;などを関数の先頭に追加する必要があります。

+0

あなたの返信をありがとうございました。私はこの前にこれをしましたが、このエラーがあります。初期化されていない文字列オフセット:0(表示:C:\ xampp \ htdocs \ GitHub \ cinema-quotes \ laravel \ resources \ views \ index.blade.php ) –

+0

'index.blade.php'を投稿できますか? – Jerodev

+0

私は今それが動作する必要があります:$ quotes = []; –

0

$authornullでなく、$quote_authorの結果が空の場合は、エラーが発生する可能性があります。この場合、$quotesの変数は設定されません。そのためのdafault値はありません。したがって、デフォルト値を設定する必要があります。

public function getIndex($author = NULL) 
{ 
    $quotes = []; 
+1

こんにちは、あなたの答えをありがとう –