gpt4 book ai didi

php - Laravel 将数据库查询转换为 Eloquent

转载 作者:行者123 更新时间:2023-12-04 17:58:09 25 4
gpt4 key购买 nike

我是 laravel 的新手,并且一直在思考这个问题。我想使用 eloquent 的主要原因是日期时间戳在 DB 方法忽略 created_at 和 updated_at 字段时起作用。我正在尝试将以下查询重现为 Eloquent :

    $user_results = DB::table('users')->
leftJoin('roles', 'users.role_id','=', 'roles.id')->
get();

我有以下数据库设置

用户迁移

<?php

use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreateUsersTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->increments('id')->unsigned();
$table->integer('role_id')->unsigned()->index();
$table->string('name');
$table->string('email')->unique();
$table->string('password');
$table->rememberToken();
$table->timestamps();
});
}

/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::drop('users');
}
}

角色迁移

<?php

use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreateRolesTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('roles', function (Blueprint $table) {
$table->increments('id');
$table->string('rolename');
$table->timestamps();
});
}

/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::drop('roles');
}
}

并且用户模型包含

public function role() {
return $this->belongsTo('App\Role');
}

任何帮助将不胜感激。

谢谢。

最佳答案

只需将 DB::table('users') 替换为 App\User

App\User::leftJoin('roles', 'users.role_id','=', 'roles.id')->get();

关于php - Laravel 将数据库查询转换为 Eloquent ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38684610/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com