我一直在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);
}
我的问题是虽然表中的表和列已创建并存在于数据库中,但我仍然不知道如何检索在创建和发送时分配给列的默认值。在视图中显示它们。
如果你能告诉我如何让它发挥作用,我将非常感谢你。
答案 0 :(得分:1)
您对数据库的查询必须如下:
DB::table($table_name)->select('*')->get();
选择用于指定所选字段的方法,而不是自行查询。
阅读官方文档,了解更多有用的方法:https://laravel.com/docs/5.3/queries