Laravel Добавить значение в постраничный результат - PullRequest
0 голосов
/ 07 февраля 2019

Я пытаюсь создать результат в 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",
},
 .....

Я хочу добавить еще один столбец как полное имя в этом результате, где мне нужно проверитьесли число ... то полное имя должно добавить значение х или ничего.Я пытался добавить в модель, но я не могу проверить и добавить значение.

1 Ответ

0 голосов
/ 07 февраля 2019

Лучший способ, как уже было предложено, - использовать Accessor .

Итак, вы можете иметь следующий метод, определенный в вашей модели.

public function getFullNameAttribute()
{
    return $this->number ? 'fullname' : ''; 
}

... и тогда вы сможете получить к нему доступ, используя

$model->fullName; 

Если вы не можете этого сделать по какой-либо причине, вот альтернатива.Поскольку разбитые на страницы результаты - это, по сути, коллекция , вы можете отобразить ее и добавить необходимое поле.

$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';
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...