実際、私は下の手順を使用してPHP Artisanを使用してLaravelのSQLビューを作成することができました。コマンド以下Laravelでphp artisanを使用してデータベースビューの移行を作成する方法は?
ステップ1を実行します:
php artisan make:migration create_overall_report_views
ステップ2.
オープン移行ファイルと以下のコードを追加:呼び出して実行するには
class CreateOverallReportView extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
//
DB::statement("
CREATE VIEW views_overall_report AS
(
SELECT er.user_id as user_id, e.id AS entities_id,
c.status_id AS status_id, s.name AS status_name
FROM `user_roles` er
LEFT JOIN elists e ON e.id=er.entities_id
LEFT JOIN `clists` c ON c.id=e.checklists_id
LEFT JOIN `status` s ON s.id = c.overall_status_id
WHERE s.slug = 'completed'
AND c.deleted_at IS NULL
)
");
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
DB::statement('DROP VIEW IF EXISTS views_overall_report');
}
}
ステップ3をLaravelクエリによるSQLビュー
$items = $DB::table('views_overall_report')
->select('status_id', 'status_name',
$DB::raw('count(entities_id) as counts')
)
->groupBy('status_id')
->orderBy('counts' , 'desc')
->whereIn('user_id', Auth::user()->id())
->get();
print_r($items);
希望に役立ちます。誰かがより良い解決策を持っているかどうか私に教えてください!
https://laravel.com/docs/master/migrations –
@FrancescodeGuytenaere @解決策を見つけました。 – nullwriter
@nullwriterこの記事の歴史を見て、最初は彼がドキュメンテーションを見つけることができなかったので、私はコメントに投稿しました(実際の回答として掲示するのではなく)。あなたは私のコメントに時代遅れとフラグを立てることができます。 –