在 Laravel 项目开发中,我们经常需要对 Eloquent 模型进行扩展,以实现诸如灵活搜索、属性映射、元数据管理等功能。如果手动实现这些功能,不仅代码量大,而且容易出错。幸运的是,
sofa/eloquence-base
sofa/eloquence-base
使用 Composer 安装
sofa/eloquence-base
<pre class="brush:php;toolbar:false;">composer require sofa/eloquence-base
例如,要为一个
Post
Searchable
$searchable
<pre class="brush:php;toolbar:false;">namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Sofa\Eloquence\Searchable;
class Post extends Model
{
use Searchable;
protected $searchable = [
'columns' => [
'posts.title' => 10,
'posts.content' => 5,
'author.name' => 2, // 搜索关联模型 author 的 name 字段
],
'joins' => [
'author' => ['posts.author_id', 'authors.id'],
],
];
public function author()
{
return $this->belongsTo(Author::class);
}
}然后,就可以使用
search()
<pre class="brush:php;toolbar:false;">$posts = Post::search('关键词')->get();sofa/eloquence-base
sofa/eloquence-base
以上就是LaravelEloquentORM扩展:使用sofa/eloquence-base解决复杂数据处理难题的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号