Laravel中无法在Bootstrap卡片显示数据库数据问题求助
解决Laravel中“未定义变量$published_articles”错误
核心原因
控制器指定加载的视图文件名称与实际视图文件名不匹配:
- 控制器中使用
view('article_data'),对应预期的视图文件是article_data.blade.php - 你实际的视图文件名为
articles_data.blade.php(多了一个s)
这导致Laravel加载的视图未接收到传递的published_articles变量,从而触发ErrorException。
解决方案(二选一即可)
方案1:修改视图文件名
将articles_data.blade.php重命名为article_data.blade.php,确保与控制器中view()方法的参数一致。
方案2:修改控制器代码
调整控制器中的视图名称,匹配现有视图文件名:
public function retrieveArticles(){ $articles = PublishArticle::latest()->paginate(6); // 将article_data改为articles_data return view('articles_data')->with(['published_articles'=>$articles]); }
额外检查项
- 清除视图缓存:执行命令
php artisan view:clear,避免旧缓存影响视图加载 - 确认模型命名空间:确保控制器顶部引入了正确的
PublishArticle模型,例如:use App\Models\PublishArticle; // Laravel 8+版本 // 或 Laravel 7及以下版本:use App\PublishArticle; - 验证路由访问:确保访问的URL是
/article_data,对应路由正确指向PublishArticlesController@retrieveArticles
内容的提问来源于stack exchange,提问作者Mr Chefane
相关产品推荐
相关产品推荐

