我正在通过 composer 使用 Laravel 4 中的 [illuminate/database component][1] - 虽然它通常运行良好,但 DB 外观似乎在这个独立版本中被破坏了。这意味着我无法使用 DB::raw() 等静态函数。似乎 DB 外观甚至包含在包中,但它不适用于 ::raw()。
我正在尝试做这样的事情-
...->orderBy(DB::raw('RAND()'))
Capsule::raw()
可用,并链接到默认连接的raw()
.
另外,我所做的是创建了一个类:
/**
* @method static raw($value)
* @method static array select($query, $bindings = [], $useReadPdo = true)
* ...etc.
*/
class DB extends Manager
{
}
以便
我找到了一个部分解决方案,但如果有人有更好的想法,我很想听听他们(看起来原来的 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()'))