Laravel Eloquent, фильтрация по столбцу сводной таблицыPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Laravel Eloquent, фильтрация по столбцу сводной таблицы

Сообщение Anonymous »

Мне нужно отфильтровать активных клиентов на маршруте с помощью Eloquent.

Я работаю со сторонней базой данных, которую не могу изменить. В моем проекте у меня есть две модели: Cliente(client) и Ruta(route), которые имеют связь многие-ко-многим, поэтому я добавил в свои модели связь ownToMany.

Единственный столбец в сводной таблице, который меня интересует, называется DESACTIV и сообщает мне, деактивирован ли Клиент для Маршрута.

Модель Рута:

Код: Выделить всё

class Ruta extends Model
{
protected $connection = 'mysql2';
protected $table = 'truta';
protected $primaryKey = 'CODIRUTA';

public function clientes(){
return $this->belongsToMany(Cliente::class, 'tcpcarut', 'CODIRUTA', 'CODICLIE')->withPivot('DESACTIV');
}
}
Модель клиента:

Код: Выделить всё

class Cliente extends Model
{
protected $connection = 'mysql2';
protected $table = 'tcpca';
protected $primaryKey = 'CODICLIE';

public function rutas(){
return $this->belongsToMany(Ruta::class, 'tcpcarut', 'CODICLIE', 'CODIRUTA')->withPivot('DESACTIV');
}
}
Мне нужно, чтобы активные (или не деактивированные) клиенты получили определенный маршрут.

Я сделал это на своем контроллере следующим образом:

Код: Выделить всё

$miRuta = Ruta::where('CODIRUTA','=',$ruta)->first();
$clientes = array();
foreach ($miRuta->clientes as $cliente){
if ($cliente->DESACTIV == 0){
array_push($clientes, $cliente->NOMBCLIE);
echo end($clientes)."
";
}
}
И это прекрасно работает, но я не думаю, что это элегантно. Я знаю, что это можно заархивировать через Eloquent, но я просто новичок в этом и не знаю, как это сделать.
  • Может быть, я мог бы добавить фильтр к методу clientes в моей модели Рута, чтобы он возвращал только активных Клиентов.
  • Или, может быть, лучше добавить метод в модели Cliente, например isDeactivated
Я знаю звучит так, будто я знаю, о чем говорю, но мне нужен кто-то, кто будет держать меня за руку, я слишком нуб в Eloquent :/. Примеры были бы очень признательны.

Подробнее здесь: https://stackoverflow.com/questions/440 ... ble-column
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»