Class“\App\Models\Admin”在尝试登录或注册管理员时未发现错误,部署 Hostinger Cpanel,本地主机工作正常

Class "\App\Models\Admin" not found getting error when trying to login or register admin, deploying Hostinger Cpanel, Local host working fine

我正在 hostinger cpanel 上部署一个 laravel9 项目,在部署和借出页面之前一切都很好,但是当尝试注册新用户或登录用户时,遇到以下共享错误,幸运的是在注册过程中数据保存在数据库中,但仪表板加载时出现以下共享错误:

Class“\App\Models\Admin”在应用程序中未找到 / Http /⟩Controllers /Admin /⟩AdminController.php :⟩109

以下代码供您参考:

AdminController.php

文件夹路径: app\Http\Controllers\Admin\AdminController.php

<?php


namespace App\Http\Controllers\Admin;

use App\Providers\RouteServiceProvider;
//use Closure;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use App\Models\Admin;
use Illuminate\Support\Facades\Hash;

class AdminController extends Controller
{
    //
    function log(Request $request)
    {
        $user= Admin::where('email', $request->email)->first();
        // print_r($data);
            if (!$user || !Hash::check($request->password, $user->password)) {
                return response([
                    'message' => ['These credentials do not match our records.']
                ], 404);
            }
             $token = $user->createToken('my-app-token')->plainTextToken;
        
            $response = [
                'user' => $user,
                'token' => $token
            ];
        
             return response($response, 201);
    }
    public function index()
    {
        return Admin::all();
    }
    public function store(Request $request)
    {   
        $request->validate([
            'name'=> 'required',
            'type'=> 'required',
            'vendor_id'=>'required',
            'email'=> 'required'
        ]);

        return Admin::create($request->all());
    }
    
    public function show($id)
    {
        //return Admin::find($type);
        return Admin::where('name',$id)->get();
    }
    
    public function update(Request $request, $id)
    {
        $product= Admin::find($id);
        $product->update($request->all());
        $result=$product->save();
        if($result)
        {
            return ['result'=>'Data has been updated'];
        }
        else
        {
            return ['result'=>'update operation has been failed'];
        }
        return $product;
    }

    public function delete($id)
    {
        $product= Admin::find($id);
        $result=$product->delete();
        //$result=$product->save();
        if($result)
        {
            return ['result'=>'Data has been deleted'];
        }
        else
        {
            return ['result'=>'update operation has been failed'];
        }
        return $product;
    }

    public function dashboard(){
        return view('admin/dashboard');
    }
    public function addadminuser(){
        return view('admin/users/add_admin_user');
    }
    public function updateadminpassword(){
        //echo"<pre>"; print_r(Auth::guard('admin')->user());die;
        $adminDetails = Admin::where('email',Auth::guard('admin')->user()->email)->first()->toArray();
        return view('admin.settings.update_admin_password')->with(compact('adminDetails'));
    }
    public function login(Request $request){
        if($request->isMethod('post')){
            $data = $request->all();
            echo "<pre>"; print_r($data); die;

            $validated = $request->validate([
                'email' => 'required|email|max:255',
                'password' => 'required',
            ]);
            if(Auth::guard('admin')->attempt(['email'=>$data['email'],'password'=>$data['password'],'status'=>1])){
                return redirect('admin/dashboard');
            }else{
                return redirect()->back()->with('error_message','Invalid Email or Password');
            }
        }
        return view('admin/login');
    }
    public function logout (){
        Auth::guard('admin')->logout();
        return redirect('admin/login');
    }
}

admin.php 文件夹路径:app\Models\admin.php

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
use Laravel\Sanctum\HasApiTokens;

class Admin extends Authenticatable
{
    use HasApiTokens,HasFactory,Notifiable;
    protected $guard = 'admin';
    protected $fillable=[
        'name',
        'type',
        'vendor_id',
        'email',
        'password',
        'mobile',
        'image',
        'status'
    ];
};

Error Screenshot-1

Error Screenshot of Line No.Highlighted

注意:相同的条件在本地主机上运行良好,仅在 Hostinger 共享主机部署时出错,我们将不胜感激。

添加的路线:

<?php

use Illuminate\Support\Facades\Route;

/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/

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

Route::get('/dashboard', function () {
    return view('dashboard');
})->middleware(['auth'])->name('dashboard');

require __DIR__.'/auth.php';

Route::prefix('/admin')->namespace('App\Http\Controllers\Admin')->group(function(){
    // Admin Login Route
    Route:: match(['get','post'],'login','AdminController@login');
    Route::group(['middleware'=>['admin']], function(){
        // Admin Dasboard Route
        Route:: get('dashboard','AdminController@dashboard');
        // Update Admin Password
        Route::match(['get','post'],'update-admin-password','AdminController@updateadminpassword');
        // Add Admin User
        Route::get('add-admin-user','AdminController@addadminuser');
        //Admin Logout
        Route::get('logout','AdminController@logout');
    });
    

});

将 admin.php 重命名为 Admin.php,作为 Psr4(Autoloader)指示

必须以 case-sensitive 方式引用所有 class 名称。

Laravel 期望以 PascalCase

加载所有 classes

https://www.php-fig.org/psr/psr-4/

https://dev.to/dalelantowork/php-laravel-8-best-naming-conventions-for-apis-23i0