1

私は [illuminate/database component][1] を Laravel 4 から composer で使用しています。一般的にはうまく機能しますが、このスタンドアロン バージョンでは 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 に答える