你好,我是Laravel和Eloquent的新手,我发现这个问题可以通过大小写敏感性问题来解决,但我找不到任何大小写问题。
:Error messageClass "App\Models\TvEpisode" not found
我试图让UserTvEpisode列表查看它在localhost工作正常(使用Windows),但不是在生产服务器上抛出一个错误,类TvEpisode找不到.
用户有许多用户电视剧集。电视剧集有许多用户电视剧集。
文件名:TvEpisode.php,UserTvEpisode.php,TvEpisodeController.php
尝试获取列表的控制器:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\UserTvEpisode;
use App\Models\TvEpisode;
use Auth;
class TvEpisodeController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$user = Auth::user();
$allTvEpisodes = UserTvEpisode::with('TvEpisode')->where("user_id", "=", $user->id)->get();
return view('tvepisode.index',[
'allTvEpisodes' => $allTvEpisodes
]);
}
}
UserTvEpisode模型:
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use App\Models\TvEpisode;
class UserTvEpisode extends Model
{
use HasFactory;
protected $table = 'user_tv_episodes';
protected $primaryKey = 'id';
public $timestamps = true;
protected $dataFormate ='h:m:s';
public function TvEpisode(){
return $this->belongsTo(TvEpisode::class)->withDefault();;
}
public function user(){
return $this->belongsTo(User::class);
}
}
TvEpisode模型
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use App\Models\UserTvEpisode;
class TvEpisode extends Model
{
use HasFactory;
protected $table = 'tv_episodes';
protected $primaryKey = 'id';
public $timestamps = false;
protected $dataFormate ='h:m:s';
public function userTvEpisodes(){
return $this->hasMany(UserTvEpisode::class);
}
}
我错过了什么?
2条答案
按热度按时间kupeojn61#
如果您确定没有大小写敏感问题,您可以尝试以下几种方法:
1.检查类的命名空间是否正确。类是否在正确的目录中,模型是否在
App\Models
中,控制器是否在App\Http\Controllers
中?如果不正确,请移动类或更改命名空间。1.是否确定服务器上存在该文件?服务器上的项目是否与您的本地项目保持最新?
1.在服务器上运行
composer dump-autoload
以重新生成项目中使用的类列表。我相信上面的一个解决方案可以解决你的问题。
wtzytmuj2#
原因可能是
OPCache
(如果你在生产中使用它),你刚刚上传了新的文件到服务器,新的PHP类还没有索引,所以composer dump-autoload
对你没有帮助。你必须重新启动你的php服务来重新索引OPCache
中的所有PHP示例(这个例子是Ubuntu和Nginx的php 8.1 fpm):也要确保-重新启动您的Web服务器(例如nginx)