2017-07-09 6 views
1

私はラーベールフレームワークを学び始め、ここでは奇妙な状況に陥り始めました。ビューはLaravelで何も返しません

web.phpでまず第一に、私のようなコードを持っている:私のUsersController.phpファイルで

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

Route::get('users', ['uses' => '[email protected]']); 

を私のようなコードを持っている:

<?php 

namespace App\Http\Controllers; 

use Illuminate\Http\Request; 

class UsersController extends Controller 
{ 
    public function index(){ 
     return view('users.index'); 
    } 
} 

を私は持っているディレクトリviews/usersindex.blade.phpという名前のファイルを持っていますデフォルトのwelcome.blade.phpと同じ内容です。しかし、私がreturn view('users.index');にしようとすると、エラー(エラーもテキストもありません)がありますが、私がreturn view('welcome');にしようとするとうまくいきます。

ディレクトリとファイルが本当に存在します。 私はMacBook Proを使用しています。

welcome.blade.php/users/index.blade.phpコンテンツ(デフォルトウェルカムページ):

<!doctype html> 
<html lang="{{ config('app.locale') }}"> 
    <head> 
     <meta charset="utf-8"> 
     <meta http-equiv="X-UA-Compatible" content="IE=edge"> 
     <meta name="viewport" content="width=device-width, initial-scale=1"> 

     <title>Laravel</title> 

     <!-- Fonts --> 
     <link href="https://fonts.googleapis.com/css?family=Raleway:100,600" rel="stylesheet" type="text/css"> 

     <!-- Styles --> 
     <style> 
      html, body { 
       background-color: #fff; 
       color: #636b6f; 
       font-family: 'Raleway', sans-serif; 
       font-weight: 100; 
       height: 100vh; 
       margin: 0; 
      } 

      .full-height { 
       height: 100vh; 
      } 

      .flex-center { 
       align-items: center; 
       display: flex; 
       justify-content: center; 
      } 

      .position-ref { 
       position: relative; 
      } 

      .top-right { 
       position: absolute; 
       right: 10px; 
       top: 18px; 
      } 

      .content { 
       text-align: center; 
      } 

      .title { 
       font-size: 84px; 
      } 

      .links > a { 
       color: #636b6f; 
       padding: 0 25px; 
       font-size: 12px; 
       font-weight: 600; 
       letter-spacing: .1rem; 
       text-decoration: none; 
       text-transform: uppercase; 
      } 

      .m-b-md { 
       margin-bottom: 30px; 
      } 
     </style> 
    </head> 
    <body> 
     <div class="flex-center position-ref full-height"> 
      @if (Route::has('login')) 
       <div class="top-right links"> 
        @if (Auth::check()) 
         <a href="{{ url('/home') }}">Home</a> 
        @else 
         <a href="{{ url('/login') }}">Login</a> 
         <a href="{{ url('/register') }}">Register</a> 
        @endif 
       </div> 
      @endif 

      <div class="content"> 
       <div class="title m-b-md"> 
        Laravel 
       </div> 

       <div class="links"> 
        <a href="https://laravel.com/docs">Documentation</a> 
        <a href="https://laracasts.com">Laracasts</a> 
        <a href="https://laravel-news.com">News</a> 
        <a href="https://forge.laravel.com">Forge</a> 
        <a href="https://github.com/laravel/laravel">GitHub</a> 
       </div> 
      </div> 
     </div> 
    </body> 
</html> 
+0

ビューが存在しない場合は、laravelは、エラーがスローされます。白いページしか表示されない場合は、エラーが表示されない可能性があります。エラーのログファイルを確認してください。 'Storage/logs/laravel.log'か、あなたのPHPのデフォルトログファイルです。目的のビュー名のスペルを間違えて結果を確認してください。エラーが表示されますか? – Hamoud

+0

@Hamoudビュー名のスペルが間違っている場合は、白いページしかありません。 'Storage/logs/laravel.log'(ファイルは存在しません)には何も格納されておらず、デフォルトのPHPログファイルにはログはありません。 – semkius

+0

それから間違いなく表示されないエラーでしょう。 .envファイルをチェックして、次の値があることを確認してください。 APP_ENV =ローカル APP_DEBUG = true APP_LOG_LEVEL =デバッグ – Hamoud

答えて

1

問題はファイルのアクセス許可にありました。すべてのファイルを読み書き可能に変更しても問題ありません。

chmod -R 777 /way/to/the/path/* 
+0

これは、laravelがcache/viewsとlaravel.logに書き込もうとしていたが、権限がないためです。 – Hamoud

1

あなたlaravelバージョンが

はこの試みる5.1+の場合:それはあなたを助けるしない場合

Route::get('users', '[email protected]'); 

を:

ステップごとにテストできます

ステップ1: ルートを置き換える:

Route::get('users', function() { 
    return 'Is OK'; 
}); 

と実行のURL:localhost:port/users

ステップ2 OKの場合:

Route::get('users', '[email protected]'); 

と置き換えるUserControllerでインデックス方法:

は、コンテンツとresources/viewsにtest.blade.phpファイルを作成します:

Is ok 

とコントローラーのコードを置き換える

public function index() 
{ 
    return 'Is OK'; 
} 

場合は、STEP3にオーケー・ゴーですwith:

public function index() 
{ 
    return view('test'); 
} 

これはどこに問題があるのか​​を見つけるのに役立ちます

+0

いいえ。それでも同じ状況。 – semkius

+0

@semkius私はあなたの問題を見つけるのを助けるために私の答えを更新しました –

+0

ステップ1と2は大丈夫です。しかし、3番目のステップは機能していません。私はファイルをchmodしようとしましたが、まだ白いページです。 – semkius

1

あなたは777 オープンに端末をストレージディレクトリのパーミッションを与え、ディレクトリをlaravelする訪問し、許可のchmod 777ストレージを変更する必要があります。

のMacBookには

あなたはターミナルで次のコマンドを入力することによってそれを行うことができますapacheのオン

0
  1. 間違っているものを参照してください、ログを確認してください。 /var/log/apache2/error.log

  2. bootstrap/cache /および/ storageフォルダに755 permを与えます。 sudo chmod -R 755 storage bootstrap/cache

  3. キー暗号化を生成します。 php artisan key:generate

  4. はあなたの/ etc/hostsファイルをチェックし、それが正しい仮想ホストを指していますことを確認してください。

  5. Apacheを再起動: sudo service apache2 restart

関連する問題