У меня есть практика, где должны присоединяться автомобили в страхователя и мочь выписывать Ваши страховки, и я пробую делать консультацию, которая, в момент selecionar страхователь списка, возвращала бы все транспортные средства, которые не в этом страхователе (включая тех, которые находятся в других), но ее прокрутив изображение в окне, он ничего не возвращает мне.
Будь функцией в драйвере:
public function mostrarVehNAs(Request $request){
$aseguradora = 2;
$datos = \DB::table('crlo_vehiculos')
->whereNotExists(function ($query) {
$aseguradora = 2;
$query->select(\DB::raw(1))
->from('crlo_veh_asegurados')
->whereRaw('crlo_veh_asegurados.id_aseguradora', '=', $aseguradora);
})
->get();
return $datos;
}
Подмостки были бы:
страхователи
------------------------------------
| id_aseguradora | nom | direccion |
------------------------------------
транспортные средства
-------------------------------------------------------------
| id_vehiculo | marca | modelo | ano | tipo | color | serial |
--------------------------------------------------------------
veh_asegurados
-------------------------------------------------------
| id_aseg | id_vehiculo | id_aseguradora | id_vigencia |
--------------------------------------------------------
Я новый в этом laravel, так что я даже не понимаю хорошо, как располагать в порядке консультацию.
Заранее спасибо за Ваши ответы.
Первое всего состоит в том, чтобы создавать модель и связи, чтобы использовать eloquent и продолжать архитектуру, которую предлагает Laravel. OlvГ - восходите использования helper DB:: table () и Raw, ввиду того, что estГЎn подумавшие для более пунктуальных и сложных случаев.
Сначала верьте в твой класс для crlo_vehiculos (мы назовем ее CrloVehiculo):
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
//use Illuminate\Database\Eloquent\SoftDeletes;
class CrloVehiculo extends Model
{
//use SoftDeletes;
//protected $dates = [ 'deleted_at' ];
protected $table = 'crlo_vehiculos';
protected $fillable = [
'id',
'otro_campo',
];
}
Сейчас внутри моделей мы создадим их relaciГіn (заблаговременно мы создадим модель для crlo_veh_asegurados
с именем CrloVehiculoAsegurado
)
В этом случае сделаем 1 1 в CrloVehiculoAsegurado
public function vehiculo(){
return $this->hasOne(CrloVehiculo::class, 'id', 'id_vehiculo');
}
и Ваш корреспондент в CrloVehiculo
public function aseguradora()
{
return $this->belongsTo(CrloVehiculoAsegurado::class, 'id_vehiculo', 'id');
}
Si у тебя есть все связи он простой, только ты нуждаешься в том, чтобы поместить одну функционируй, чтобы просачиваться в with или использовать whereHas, если то, что ты хочешь, filtar
public function mostrarVehNAs(){
$aseguradora = 2;
return CrloVehiculo::whereHas('aseguradora' => function($query) use ($aseguradora){
$query->where('id_aseguradora', $aseguradora); // Subquery
})->get();
}