【问题标题】:Laravel strange PDO fetchMode issueLaravel 奇怪的 PDO fetchMode 问题
【发布时间】:2013-12-24 11:33:35
【问题描述】:

这有效并显示了结果集:

$mainFeatures = new Mainfeature;
$mainFeatures->getConnection()->setFetchMode(PDO::FETCH_KEY_PAIR);
$main = $mainFeatures::get(array('id','data'))->toArray();
dd($main); 

但是如果我尝试返回结果集:

return View::make('orders.create')
    ->with('features', Feature::with('Subfeature')->get()->toArray())
    ->with('mainFeatures', $main);

它给出了一个错误:

SQLSTATE[HY000]: General error: PDO::FETCH_KEY_PAIR fetch mode requires the result set to contain extactly 2 columns. (SQL: select * from `features`) (Bindings: array ( ))

不确定select * from features 的来源......

【问题讨论】:

  • 之前没有使用过 Laravel,但get() 肯定会生成SELECT *,而get(array('id','data'))(如您的第一个示例)肯定会生成SELECT id, data,这就是您想要的@ 987654330@
  • @Clive 想看看我在使用 PDO 时遇到的其他问题? stackoverflow.com/questions/20434522/… 谢谢。

标签: php mysql database pdo laravel-4


【解决方案1】:

我错过了我正在更改 connection 而不仅仅是 class Mainfeature 的获取模式。所以我不得不重置它。

$mainFeatures = new Mainfeature;
    $mainFeatures->getConnection()->setFetchMode(PDO::FETCH_KEY_PAIR);
    $main = $mainFeatures::get(array('id','data'))->toArray();
    //dd($h);
    //dd($main);

    $features = new Feature;
    $features->getConnection()->setFetchMode(PDO::FETCH_CLASS);

    return View::make('orders.create')
        ->with('features', $features::with('Subfeature')->get()->toArray())
        ->with('mainFeatures', $main);

感谢 Clive 为我指明了正确的方向。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-07-11
    • 2016-01-31
    • 2018-02-20
    • 2019-07-27
    • 2020-06-27
    • 2020-01-29
    • 2020-05-13
    • 2016-01-14
    相关资源
    最近更新 更多