web-dev-qa-db-fra.com

Laravel multiple éloquent O avec OR ET OR et comme?

J'ai (ou j'essaie de faire) cette requête à Laravel

Le problème que j'ai est avec le $orThose
Je veux interroger LIKE

Les données dans ce champ peuvent avoir beaucoup de choses, mais il y aura toujours un travail clé comme "L3" ou "ICU" dans le champ.

Pouvez-vous faire une requête LIKE dans ce cas

$matchThese = ['link.hos_id' => $hos_id, 'outcome.otc_otrdischargedate' => $td];
$orThose = ['outcome.otc_outcome' => '@ICU@', 'outcome.otc_outcome' => '@I.C.U@'];

$todaysReferrals = DB::table('link')
->join('daily_link', 'link.lnk_id', '=', 'daily_link.dlk_lnkid')
->join('demographic', 'link.lnk_dmgid', '=', 'demographic.dmg_id')
->join('admission', 'link.lnk_admid', '=', 'admission.adm_id')
->join('or_call', 'admission.adm_calid', '=', 'or_call.cal_id')
->join('admission_score', 'admission.adm_scoreid', '=', 'admission_score.ascore_id')
->join('diagnosis', 'link.lnk_dgnid', '=', 'diagnosis.dgn_id')
->join('outcome', 'link.lnk_otcid', '=', 'outcome.otc_id')
->where($matchThese)
->orWhere($orThose)
->get();
7
morne

Utilisez like et not like avec % dans les méthodes where() et orWhere():

->where('column', 'like', '%pattern%')

https://laravel.com/docs/5.3/queries#where-clauses

Si vous devez utiliser plusieurs AND, procédez comme suit:

->where($condition)
->where($anotherCondition)

Si vous voulez utiliser OR faites ceci:

->where($condition)
->orWhere($anotherCondition)

Pour combiner plusieurs AND et OR do regroupement de paramètres :

->where('name', '=', 'John')
->orWhere(function ($query) {
    $query->where('votes', '>', 100)
          ->where('title', '<>', 'Admin');
})
13
Alexey Mezenin

Salut S'il vous plaît trouver la référence pour où condition à la fois avec 'ou' et 'et' 

Stock de table

 enter image description here

$name='appl';
$type=1;
$stocks = DB::table('stocks')
            ->where('name', 'like', '%' . $name . '%')
            ->orWhere('company_name', 'like', '%' . $name . '%')
            ->where('exchange_id', '=', $type)
            ->get();
$results = json_decode($stocks, true);
print_r($results);
2
public function searchData(Request $request)
{
  return Phonebook::where('name', 'like', '%'.$request->SearchQuery.'%')->orWhere('email', 'like', '%'.$request->SearchQuery.'%')->orWhere('phone', 'like', '%'.$request->SearchQuery.'%')->get();
}

Ici, j'ai cherché le nom, l’email et le numéro de téléphone du modèle de répertoire en utilisant where, orwhere et like

0
Anandan K