【Laravel】Class (...) not found의 대처
결론
직접 만든 모델의 namespace 선언이 잘못되었습니다.
php artisan make:model
커멘드로 모델을 작성했을 경우는 자동적으로 네임스페이스가 등록되는 것 같습니다만,
커맨드를 사용하지 않고 스스로 모델을 추가한 경우, 별도 등록해 줄 필요가 있는 것 같습니다.
발생한 코드
// App\Models\PasswordResetsという名前空間をインポートしているのに
use App\Models\PasswordResets;
class ResetPasswordController extends Controller
{
...
public function showResetForm(Request $request, $token = null)
{
// PasswordResetsが見つからずにエラー発生
$record = PasswordResets::where('email', $request->email)->first();
해소
1. namespace 선언 확인
PasswordReset 클래스를 살펴보면 namespace 선언이 잘못되었습니다. 그래서 수정.
<?php
// 自分でModelsフォルダを作成してそこに格納しているので、namespace App\Models;と記述する必要がある...当たり前
namespace App;
use Illuminate\Database\Eloquent\Model;
class PasswordResets extends Model
{
...
2. composer dump-autoload 실행
커멘드의 실행에 의해 독자적으로 구현한 이름 공간도 주워, 설정 파일에 보존해 줍니다.
> composer dump-autoload
3. 네임스페이스에 추가되었는지 확인
laravel/vendor/composer/autoload.classmap.php
에 네임스페이스가 추가되어 있으면 OK입니다.
<?php
// autoload_classmap.php @generated by Composer
$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);
return array(
'App\\Models\\PasswordReset' => $baseDir . '/app/Models/PasswordReset.php',
Reference
이 문제에 관하여(【Laravel】Class (...) not found의 대처), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kondo0602/items/7aa7ad4b01ed7cb25331
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
// App\Models\PasswordResetsという名前空間をインポートしているのに
use App\Models\PasswordResets;
class ResetPasswordController extends Controller
{
...
public function showResetForm(Request $request, $token = null)
{
// PasswordResetsが見つからずにエラー発生
$record = PasswordResets::where('email', $request->email)->first();
해소
1. namespace 선언 확인
PasswordReset 클래스를 살펴보면 namespace 선언이 잘못되었습니다. 그래서 수정.
<?php
// 自分でModelsフォルダを作成してそこに格納しているので、namespace App\Models;と記述する必要がある...当たり前
namespace App;
use Illuminate\Database\Eloquent\Model;
class PasswordResets extends Model
{
...
2. composer dump-autoload 실행
커멘드의 실행에 의해 독자적으로 구현한 이름 공간도 주워, 설정 파일에 보존해 줍니다.
> composer dump-autoload
3. 네임스페이스에 추가되었는지 확인
laravel/vendor/composer/autoload.classmap.php
에 네임스페이스가 추가되어 있으면 OK입니다.
<?php
// autoload_classmap.php @generated by Composer
$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);
return array(
'App\\Models\\PasswordReset' => $baseDir . '/app/Models/PasswordReset.php',
Reference
이 문제에 관하여(【Laravel】Class (...) not found의 대처), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kondo0602/items/7aa7ad4b01ed7cb25331
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
<?php
// 自分でModelsフォルダを作成してそこに格納しているので、namespace App\Models;と記述する必要がある...当たり前
namespace App;
use Illuminate\Database\Eloquent\Model;
class PasswordResets extends Model
{
...
> composer dump-autoload
<?php
// autoload_classmap.php @generated by Composer
$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);
return array(
'App\\Models\\PasswordReset' => $baseDir . '/app/Models/PasswordReset.php',
Reference
이 문제에 관하여(【Laravel】Class (...) not found의 대처), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kondo0602/items/7aa7ad4b01ed7cb25331텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)