Как преобразовать SQL-запрос в красноречивый в Laravel - PullRequest
0 голосов
/ 12 апреля 2019

как конвертировать sql в eoquent

$getAllRequirementRecord = Requirement::select()
  ->join('requirement_locations','requirements.id','=','requirement_locations.requirement_id')
  ->join('locations','requirement_locations.location_id','=','locations.id')
  ->where('isdelete',2)
  ->where('requirements.id',$id)->get();

помогите решить эту проблему

Ответы [ 3 ]

0 голосов
/ 12 апреля 2019

Вы также можете использовать eloquent с запросом SQL raw:

$activeusers = User::selectRaw('users.name, count(*) submitted_games')
    ->join('games', 'games.user_id', '=', 'users.id')
    ->groupBy('users.name')
    ->orderBy('submitted_games', 'DESC')
    ->get();

Чтобы вывести на экран последние выполненные запросы, вы можете использовать это:

dd(DB::getQueryLog());
0 голосов
/ 12 апреля 2019

Допустим, у нас есть красноречивая модель с именем Requirement, и у нас есть таблица базы данных с именем require, связанной с этой моделью, и у нас есть другая модель с именем requireLocation, связанная с таблицей базы данных с именем require_locations.

и у нас есть связь между базами данных между обеими таблицами "Требования" и "Требования_Локации" на основе требования_ID

Модель требований:

class Requirement extends Model{
  protected $table = 'requirements';
}

Требование Местонахождение Модель:

class RequirementLocation extends Model{
  protected $table = 'requirement_locations';
}

и теперь нам нужно установить отношения между этими двумя моделями, такими как таблицы базы данных ... так что в Требовании, которое мы будем использовать, есть много отношений

use App\RequirementLocation;

class Requirement extends Model{
  protected $table = 'requirements';

  public function locations(){
     return $this->hasMany(RequirementLocation::class);
  }
}

и просто для извлечения ваших данных используйте

$id = 1;
$getAllRequirementRecord = Requirement->whereHas('locations' , function($query){
   $query->where('isdelete',2);

})->where('id',$id)->with('locations')->get();
0 голосов
/ 12 апреля 2019

Я надеюсь, что вы создали модели Requirement, Location и RequirementLocation

Поэтому сначала добавьте этот код в файл модели Requirement.php:

public function locations()
{
    return $this->hasMany('RequirementLocation', 'requirement_locations');
}

Then access the requirements like this :

$requirement = Requirement::where('id', $requirement_id)->first();

Now you can access locations like this :

$requirement->locations;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...