如何使用Laravel DB从动态创建的表中获取数据?

时间:2016-10-06 17:00:14

标签: php mysql laravel

我一直在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);
}

我的问题是虽然表中的表和列已创建并存在于数据库中,但我仍然不知道如何检索在创建和发送时分配给列的默认值。在视图中显示它们。
如果你能告诉我如何让它发挥作用,我将非常感谢你。

1 个答案:

答案 0 :(得分:1)

您对数据库的查询必须如下:

DB::table($table_name)->select('*')->get();

选择用于指定所选字段的方法,而不是自行查询。

阅读官方文档,了解更多有用的方法:https://laravel.com/docs/5.3/queries