虽然我已经定义了
digitalmarketinginof
和 projects
模型中的关系,但它显示了一个错误。在本地主机上,它工作得很好。我不知道为什么这个问题在生产中。我想尽快解决这个问题。
错误
照亮 \ 数据库 \ 雄辩 \ RelationNotFoundException PHP 8.1.27 10.11.0 调用模型 [App\Models\projects] 上的未定义关系 [digitalmarketinginfo]。
扩展供应商框架 7 个供应商框架 应用程序 \ Http \ 控制器 \ ProjectsController : 21 索引 47 供应商框架 public / 索引 .php : 52 [顶部]应用程序 / Http / 控制器 / ProjectsController.php : 21
控制器
use App\Http\Requests\StoreprojectsRequest;
use App\Http\Requests\UpdateprojectsRequest;
use Illuminate\Support\Facades\Auth;
class ProjectsController extends Controller
{
public function index()
{
$user = Auth::user();
$projects = Projects::with(['digitalmarketinginfo.dailyStats'])->where('user_id', $user->id)->get();
// Debug: Log the digitalMarketingInfo relationship data
foreach ($projects as $project) {
if ($project->digitalMarketingInfo) {
dd($project->digitalMarketingInfo->toArray());
}
}
// Prepare data for the chart
$likesData = $projects->pluck('digitalMarketingInfo.dailyStats.likes')->toArray();
$followsData = $projects->pluck('digitalMarketingInfo.dailyStats.follows')->toArray();
$engagementData = $projects->pluck('digitalMarketingInfo.dailyStats.engagement')->toArray();
$dates = $projects->pluck('digitalMarketingInfo.dailyStats.date')->toArray();
return view('dashboard', compact('projects', 'likesData', 'followsData', 'engagementData', 'dates'));
}
}
错误消息表明
digitalmarketinginfo
关系未在Projects
模型上定义。
class Projects extends Model
{
public function digitalmarketinginfo()
{
return $this->hasOne('App\Models\DigitalMarketingInfo');
}
}
在你的
DigitalMarketingInfo
模型中:
class DigitalMarketingInfo extends Model
{
public function projects()
{
return $this->belongsTo('App\Models\Projects');
}
}
如果您正确定义了关系,则问题可能是由于缓存造成的。尝试使用以下命令清除配置缓存:
php artisan config:clear
如果问题仍然存在,请提供您的
Projects
和 DigitalMarketingInfo
型号的代码以获得进一步帮助。