1

我正在通过 composer 使用 Laravel 4 中的 [illuminate/database component][1] - 虽然它通常运行良好,但 DB 外观似乎在这个独立版本中被破坏了。这意味着我无法使用 DB::raw() 等静态函数。似乎 DB 外观甚至包含在包中,但它不适用于 ::raw()。

我正在尝试做这样的事情-

...->orderBy(DB::raw('RAND()'))
4

2 回答 2

4

Capsule::raw()可用,并链接到默认连接的raw().

另外,我所做的是创建了一个类:

/**
 * @method static raw($value)
 * @method static array select($query, $bindings = [], $useReadPdo = true)
 * ...etc.
 */
class DB extends Manager
{
}

以便

  1. 您可以使用 DB::raw()。
  2. IDE 代码完成工作。
于 2015-03-24T08:55:37.523 回答
0

我找到了一个部分解决方案,但如果有人有更好的想法,我很想听听他们(看起来原来的 Capsule 包实际上内置了支持,也许它在合并时丢失了,或者我可能是使用不当?)

use Illuminate\Database\Capsule\Manager as Capsule;

$connection = Capsule::connection();

// You can now use $connection->raw() in place of DB::raw()
...->orderBy($connection->raw('RAND()'))
于 2013-10-01T07:47:56.183 回答