我正在托管 cpanel 上部署一個 laravel9 專案,在部署和借出頁面之前一切都很好,但是當嘗試注冊新用戶或登錄用戶時,面臨以下共享錯誤,幸運的是在注冊程序中資料保存在資料庫中,但儀表板加載如下共享錯誤:
在 app / Http / Controllers /Admin / AdminController.php 中找不到類“\App\Models\Admin” :109
以下是供您參考的代碼:
管理員控制器.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'
];
};
錯誤截圖-1
Line No.Highlighted 錯誤截圖
注意:Same Cond 在 localhost 上運行良好,僅在 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');
});
});
uj5u.com熱心網友回復:
將 admin.php 重命名為 Admin.php,如 Psr4(自動加載器)指示
所有類名必須以區分大小寫的方式參考。
Laravel 期望在 PascalCase 中加載所有類
https://www.php-fig.org/psr/psr-4/
https://dev.to/dalelantowork/php-laravel-8-best-naming-conventions-for-apis-23i0
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/485937.html
下一篇:相同路由不同的中間件路由組
