在分页结果Laravel附加价值

问题描述 投票:0回答:1

我想产生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或没有增加任何类似的全名多了一个列。我曾尝试在模型追加,但我无法检查和增值服务。

laravel append
1个回答
1
投票

最好的办法,因为它已经被认为是使用一个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';
    });
© www.soinside.com 2019 - 2024. All rights reserved.