Files
ikea/app/Models/IkeaProducts.php
2024-03-21 21:11:17 +01:00

66 lines
1.7 KiB
PHP

<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class IkeaProducts extends Model
{
use HasFactory;
protected $table = 't_ikea_products';
/**
* The primary key associated with the table.
*
* @var string
*/
protected $primaryKey = null;
/**
* Indicates if the model's ID is auto-incrementing.
*
* @var bool
*/
public $incrementing = false;
protected function search($field, $text, $country)
{
if ((strlen($text) >= 2 && $field == "name") || (strlen($text) > 3 && $field == 'typeName') || (strlen($text) == 8 && $field = 'code')) {
$result = $this->where($field, 'LIKE', '%' . $text . '%');
if ($country != '') {
$result->where('country', $country);
}
return $result->get();
} else if ($field == "all") {
if (preg_match("/0[0-9]+/", $text)) {
$result = $this->where("code", '=',$text);
$result->where('country', $country);
} else {
if (strlen($text) < 2) return [];
$result = $this;
$result = $this->where(function ($query) use ($text) {
if (strlen($text) >= 2) $query->where("name", 'LIKE', '%'. $text . '%');
if (strlen($text) > 3) $query->orWhere("typeName", 'LIKE', '%'. $text . '%');
});
if ($country != '') {
$result->where('country', $country);
}
}
return $result->get();
}
return [];
}
protected function multisearch($codes, $countries)
{
//$countries = $
// return $this->where('code',$codes)->where('country',$countries);
}
}