我一直在 Laravel 5.3 中创建一个应用程序,由于该应用程序的性质,我需要创建一个特定于每个注册用户的表。为此,我使用了 homeController(用户在成功注册后被重定向到它)并在其中使用了以下代码:
$user_id = Auth::user()->id;
$user_name = Auth::user()->name;
$table_name = $user_name . '_' . $user_id;
if (Schema::hasTable($table_name))
{
$specs = DB::table($table_name)->select('select * from ' . $table_name);
return view('home')->with('rvalue', $specs);
}else{
Schema::connection('mysql')->create($table_name, function ($table){
$value = 0;
$table->string('address')->default($value);
$table->string('phone')->default($value);
$table->string('name')->default($value);
});
}
从 home.blade.php 中的代码开始,我添加了:
foreach ($rvalue as $value)
{
var_dump($value);
}
我的问题是,尽管表及其中的列已创建并存在于数据库中,但我仍然不知道如何检索在创建列时分配给列的默认值并发送和发送将它们显示在 View 中。
如果您能告诉我如何让它发挥作用,我将非常感谢您。
最佳答案
您对数据库的查询必须如下所示:
DB::table($table_name)->select('*')->get();
Select方法用于指定选定的字段,而不是用于查询本身。
阅读官方文档了解更多有用的方法:https://laravel.com/docs/5.3/queries
关于php - 如何使用 Laravel DB 从动态创建的表中获取数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39901763/