php – 在Laravel 5.1中动态加载模型
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php – 在Laravel 5.1中动态加载模型,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1225字,纯文字阅读大概需要2分钟。
内容图文
![php – 在Laravel 5.1中动态加载模型](/upload/InfoBanner/zyjiaocheng/734/7fcf8d0af5fe4dd680fbd083d367a05b.jpg)
我是Laravel的新手和一般的框架,我遇到的问题很简单
我正在构建一个管理面板,我想根据给定的路径加载表.在我的Routes文件中,我有:
Route::get('/admin/{table}', 'AdminController@table');
在我的AdminController中,我有:
public function table()
{
if (file_exists(app_path() . '/' . $table . '.php')){
$data = $table::all();
} else {
abort(404);
}
return view('admin.pages.' . $table, compact($data));
}
当我转到/ admin / table1时,我收到此错误:
FatalErrorException in AdminController.php line 20:
Class 'table1' not found
我很确定这不起作用,因为我不允许将$变量作为类名,如$table :: all().最后我要避免的是必须做这样的事情:
public function table1()
{
$data = table1::all();
return view('admin.pages.table1', compact($data));
}
public function table2()
{
$data = table2::all();
return view('admin.pages.table2', compact($data));
}
public function table3()
{
$data = table3::all();
return view('admin.pages.table3', compact($data));
}
...
任何意见,将不胜感激.
解决方法:
public function table($table)
{
$class = 'App\\' . $table;
if (class_exists($class)) {
$data = $class::all();
} else {
abort(404);
}
return view('admin.pages.' . $table, compact($data));
}
当然,如果你想使用更简单的路由参数,比如用户而不是用户,你可以这样做:
$class = 'App\\' . ucwords(rtrim($table,'s'));
内容总结
以上是互联网集市为您收集整理的php – 在Laravel 5.1中动态加载模型全部内容,希望文章能够帮你解决php – 在Laravel 5.1中动态加载模型所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。