laravelビューはルート関数で見つかりませんでしたcomposer dumpautoloadがArticleController.phpを使用しません
<?php
class ArticleController extends BaseController
{
public function showIndex()
{
return View::make('index');
}
public function showSingle($articleId)
{
return View::make('single');
}
}
//Route
Route::get('index', 'ArticleController@showIndex');
InvalidArgumentException
View [index] not found.
open: /opt/lampp/htdocs/laravel-project/bootstrap/compiled.php
foreach ((array) $paths as $path) {
foreach ($this->getPossibleViewFiles($name) as $file) {
if ($this->files->exists($viewPath = $path . '/' . $file)) {
return $viewPath;
}
}
}
throw new \InvalidArgumentException("View [{$name}] not found.");
}
protected function getPossibleViewFiles($name)
Server/Request Data
REDIRECT_UNIQUE_ID UfWlAn8AAQEAABR2VakAAAAF
REDIRECT_STATUS 200
UNIQUE_ID UfWlAn8AAQEAABR2VakAAAAF
HTTP_Host localhost
HTTP_USER_AGENT Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:22.0) Gecko/20100101 Firefox/22.0
HTTP_ACCEPT text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
HTTP_ACCEPT_LANGUAGE en-US,en;q=0.5
HTTP_ACCEPT_ENCODING gzip, deflate
HTTP_COOKIE laravel_session=f94fpel78jn89nhah32mflqn15
HTTP_CONNECTION keep-alive
HTTP_CACHE_CONTROL max-age=0
PATH /usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
LD_LIBRARY_PATH /opt/lampp/lib:/opt/lampp/lib
SERVER_SIGNATURE
SERVER_SOFTWARE Apache/2.4.4 (Unix) OpenSSL/1.0.1e PHP/5.4.16 mod_Perl/2.0.8-dev Perl/v5.16.3
SERVER_NAME localhost
SERVER_ADDR 127.0.0.1
SERVER_PORT 80
REMOTE_ADDR 127.0.0.1
DOCUMENT_ROOT /opt/lampp/htdocs
REQUEST_SCHEME http
CONTEXT_PREFIX
CONTEXT_DOCUMENT_ROOT /opt/lampp/htdocs
SERVER_ADMIN [email protected]
SCRIPT_FILENAME /opt/lampp/htdocs/laravel-project/public/index.php
REMOTE_PORT 50211
REDIRECT_URL /laravel-project/public/index
GATEWAY_INTERFACE CGI/1.1
SERVER_PROTOCOL HTTP/1.1
REQUEST_METHOD GET
QUERY_STRING
REQUEST_URI /laravel-project/public/index
SCRIPT_NAME /laravel-project/public/index.php
PHP_SELF /laravel-project/public/index.php
REQUEST_TIME_FLOAT 1375053058.123
REQUEST_TIME 1375053058
これは、Laravelがアプリケーションでビューファイルを見つけられない場合に発生します。index.php
またはindex.blade.php
という名前のファイルがapp/views
ディレクトリの下にあることを確認してください。
View::make
を呼び出すときにLaravelは次のことを行います。
View::make('index')
Laravel=の場合は、ファイルapp/views/index.php
を探します。View::make('index.foo')
Laravel=の場合は、ファイルapp/views/index/foo.php
を探します。ファイルには、.php
または.blade.php
のいずれかの拡張子を付けることができます。
このエラーは、プロジェクトディレクトリ全体を他のパスに移動しようとした場合にも発生します。そして、移動する前に以下のコマンドを実行しました。
php artisan optimize --force
php artisan config:cache
php artisan route:cache
ご覧のとおり、古いパスはcompiled.phpに記述されています。そのため、問題を修正します。新しいフォルダーの場所にあるプロジェクトフォルダーで同じコマンドをもう一度実行するだけです。
php artisan optimize --force
php artisan config:cache
php artisan route:cache
お役に立てれば。
このコマンドは私のために働く
php artisan config:cache
Laravel docがデフォルトで言うように、Laravelはファイルキャッシュドライバーを使用するように構成され、シリアル化され、キャッシュされたオブジェクトをファイルシステムに保存します。そのため、新しく追加されたビューとルートを表示できるように、ファイルシステムを再キャッシュする必要があります。 laravelが実際に再キャッシュする必要がある理由もわかりません
これは可能性がありますエラーが表示されていてもビューが存在すること。したがって、この問題を解決するには、サーバーを停止し、ターミナルでこのコマンドを実行する必要があります。
php artisan config:cache
その後、サーバーを再起動します
コントローラー呼び出しで
return View('index');
なしで
::make
私の場合、私はView::make('User/index')
を呼び出していました。実際、私のビューはユーザーディレクトリにあり、index.blade.phpと呼ばれていました。 View@make('user.index')
に変更した後、すべてが機能し始めました。
私の場合、Laravel 5.3
Route::get('/', function(){
return View('test');
});
test.blade.phpはレンダリングされませんでしたが、MacのXAMPPを介してlocalhostで他のいくつかのビューがレンダリングされていました。 artisanサーバーの実行時、XAMPP経由で同じURLのビューのレンダリングが開始されました。
php artisan serve
このようなシナリオを回避するには、Laravelアプリを職人サーバーのみでテストする必要があります。
少し恥ずかしいことに、このエラーの別のささいな原因を発見しました。ブレードファイルのファイル名が完全に停止していました(例_resources/views/pages/user.invitation.blade.php
_)。当時は本当に意味がありました!
私はそれを次のように参照しようとしました:view('pages.user.invitation')
しかし、もちろんLaravelは_resources/views/pages/user/invitation.blade.php
_でファイルを探し、_view not found
_をスローしていました。
これが誰かを助けることを願っています。
同じエラーが発生していましたが、私の場合、ビューはseeProposal
と呼ばれていました。
seeproposal
に変更しましたが、うまくいきました...
ローカルでテストしている間は問題ではありませんでしたが、明らかにLaravelは本番環境で実行されている大文字を区別します。 。
ビューフォルダーにindex.blade.phpファイルを作成します。
@deanchiuが言ったように、プロジェクト全体を別のパスまたはサーバーに移動すると発生する可能性があります。
しかし、私の場合、サーバー上のコマンドラインにアクセスできず、プロジェクトをアップロードする前に次のコマンドを実行すると助けになりました。
> php artisan route:clear
> php artisan config:clear
見つからないというビューでブレードの構文を確認してください
@if
@component
@endif
@endcomponent
に
@if
@component
@endcomponent
@endif