Laravel 8 自定义集合
如果你需要使用自定义 Collection
对象与自己的扩展方法一起使用, 可以在你的模型上重写 newCollection
方法:
<?php
namespace App\Models;
use App\Support\CustomCollection;
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
/**
* 创建一个 Eloquent 集合实例
*
* @param array $models
* @return \Illuminate\Database\Eloquent\Collection
*/
public function newCollection(array $models = [])
{
return new CustomCollection($models);
}
}
一旦你定义了 newCollection
方法, 你将随时可以从你的自定义集合中接收一个 Collection
返回的一个模型实例.。如果要为应用程序的每个模型使用自定义集合,就应该重写所有模型扩展的基类模型中 newCollection
方法。