我想产生laravel结果,我可以在结果中添加一个值。比如我使用此查询:
$variable = model::where('did', '=', $did)->where('name', 'LIKE', "%{$name}%")->orderBy('id', 'DESC')->paginate(6);
这是生成的结果:
total: 23,
per_page: 6,
current_page: 3,
last_page: 4,
next_page_url: "url/api/v1/model?did=b2d5c031ce301144&name=&page=4",
prev_page_url: "url/api/v1/model?did=b2d5c031ce301144&name=&page=2",
from: 13,
to: 18,
data: [
{
number: "9739693089",
message: "Message from Nilay 21",
type: "Received",
did: "b2d5c031ce301144",
},
.....
我想在这样的结果,我需要检查,如果号码是那么的全名应该增加值x或没有增加任何类似的全名多了一个列。我曾尝试在模型追加,但我无法检查和增值服务。
最好的办法,因为它已经被认为是使用一个Accessor。
所以,你可以在你的模型中定义下面的方法。
public function getFullNameAttribute()
{
return $this->number ? 'fullname' : '';
}
...然后你就可以通过访问它
$model->fullName;
如果你不能做到这一点,无论出于何种原因,这里是一个另类。由于分页结果基本上是一个Collection,你可以映射了它,并添加你需要的领域。
$variable = Model::where('did', '=', $did)
->where('name', 'LIKE', "%{$name}%")
->orderBy('id', 'DESC')
->paginate(6)
->map(function($model) {
// You can do your check here
// for example if($model->number) {}
$model->fullName = 'test';
});