Laravel: преобразовать значение метаданных в отдельное логическое значениеPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Laravel: преобразовать значение метаданных в отдельное логическое значение

Сообщение Anonymous »

Я создаю контроллер разговоров голосового журнала для отображения некоторых запросов, сделанных во внешнем интерфейсе. Я разрешаю некоторые данные, а некоторые данные необходимо исключить

Код: Выделить всё

  public function index(): JsonResponse
{
$allowedMetadata = [
'queue_display_name',
'campaign_display_name',
'finished',
'transfer_destination',
'direction',
'record_expires',
'cur_call_uid',
'call_recording', //keep unexposed
'has_recording // if call recording is true make this true, otherwise false
];

request()->validate([
'from'  => 'date_format:Y-m-d\TH:i:s\Z',
'until' => 'date_format:Y-m-d\TH:i:s\Z',
]);

$orderBy = request()->has('order_by') ? request('order_by') : "answered_at";
$direction = request()->has('order_by') && request('direction') === "asc" ? "asc" : "desc";

//some request ordering code...

//some request query parsing code...

$conversations = $query->paginate();
foreach ($conversations as &$conversation) {
foreach ($conversation->metadata as $key => $value) {
if (!in_array($key, $allowedMetadata)) {
$conversation->metadata->forget($key);
}
}
}
return response()->json($conversations);
}
в данном случае «call_recording» — это строка URL-адреса, которую я хочу сохранить недоступной. я хочу сделать это значение логическим под названием «has_recording», чтобы я мог отображать кнопку во внешнем интерфейсе, если оно истинно, и не отображать, если has_recording имеет значение false
как мне добавить дополнительное значение для API, который имеет это логическое значение «has_recording», при этом не раскрывая строку URL-адреса call_recording?
я хочу перебрать все разговоры и добавить значение по умолчанию «has_recording», подобное этому, в store(), но я хочу добавить это значение в метаданные

Код: Выделить всё

$reqHasCallRecording = false;
foreach ($request->metadata as $metadataData) {
if ($metadataData['key'] == 'call_recording') {
$reqHasCallRecording = true;
break;
}
}
Я узнал, что это можно сделать с помощью Eloquent, но не знаю, как это сделать?
Любая помощь приветствуется.

Подробнее здесь: https://stackoverflow.com/questions/786 ... te-boolean
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»