【问题标题】:Why is my Laravel query returning the the index number and name?为什么我的 Laravel 查询返回索引号和名称?
【发布时间】:2016-12-10 10:32:18
【问题描述】:

Laravel 中的这条路线...

$app->get('/{username}/firstname', function (Request $request, $username){
   $user = DB::connection('db1')->select('select `firstname` from `iosUsers` where `username` = ?', [$username]);
   var_dump($user);
});

给我这个...

array(1) {
  [0]=>
  array(2) {
    ["firstname"]=>
    string(7) "Cameron"
    [0]=>
    string(7) "Cameron"
  }
}

与预期返回的方式相反,它只返回键名,而不是数字。 我不知道为什么它用两种索引类型显示它两次。我希望它只是名字。

当我切换到 database.php 而不是使用 .env 文件时,问题就开始了。

【问题讨论】:

  • 尝试删除::connection('db1')。还可以尝试另一种选择方式:DB::table('iosUsers')->select('firstname')->where('username', $username)->get()。查看this 了解更多在 Laravel 中使用查询的不同方式。您也可以考虑使用Eloquent,因为它非常易于使用并增加了更多功能。
  • 仍然给我同样的结果。
  • 认为您的数据库中有两次此信息

标签: php sql database laravel lumen


【解决方案1】:

尝试改用DB::table 并确保->get() 查询以便运行它。

改变

$app->get('/{username}/firstname', function (Request $request, $username){
   $user = DB::connection('db1')->select('select `firstname` from `iosUsers` where `username` = ?', [$username]);
   var_dump($user);
});

收件人

$app->get('/{username}/firstname', function (Request $request, $username){
    $user = DB::table('db1')->selectRaw("select `firstname` from `iosUsers` where `username` = ?", [$username]);
    var_dump($user);
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-02
    • 2018-04-24
    • 2015-04-13
    • 2017-12-01
    • 1970-01-01
    • 2021-01-12
    • 2011-04-20
    • 2020-04-16
    相关资源
    最近更新 更多