در این مقاله ما برخی از تکنیکهای جستجو با استفاده از eloquent laravel در طراحی سایت به شما آموزش خواهیم داد.
در کد پایین یک مثال ساده از جستجو را مشاهده می کنید:
<?php
$results = Post::where('title', 'foo')->get();
در اینجا ما && را با استفاده از آرایه به جستجوی خود اضافه می کنیم:
<?php
$results = Post::where([
['title', '=', 'foo'],
['published', '=', true],
])->get();
در جستجوی پایین اپریتور || را با استفاده orWhere به شما نمایش می دهیم:
<?php
$results = Post::where('title', 'foo')->orWhere('description', 'foo')->get();
برای قدم بعدی، بیایید نگاهی به کلید واژه LIKE MySQL بیاندازیم. این کار را با استفاده از کاراکتر % انجام خواهیم داد.
<?php
// We can use a variable
$keyword = 'foo';
// Starts with 'foo', ends with anything
$results = Post::where('title', 'like', "{$keyword}%")->get();
// Ends with 'foo', starts with anything
$results = Post::where('title', 'like', "%{$keyword}")->get();
// Contains 'foo'
$results = Post::where('title', 'like', "%{$keyword}%")->get();
نوع JSON یک انعطاف پذیری بزرگ را به ارمغان می آورد که فوق العاده است. همچنین، ما می توانیم به راحتی با Eloquent آنرا نمایش دهیم، زیرا پشتیبانی خوبی از JSON دارد. اما نکته مهم این است که JSON به حروف کوچک و بزرگ حساس است و آنها را متفاوت می بیند.
<?php
$results = Post::where('meta->description', 'like', '%foo%')->get();
ما این حساسیت را با استفاده از whereRaw از بین می بریم:
<?php
$keyword = 'foo';
$results = Post::whereRaw('lower(meta->"$.description") like lower(?)', ["%{$foo}%"]);