Как вернуть выделение в api laravel 5.5 используя ресурс

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

У меня есть API Laravel 5.5 с в api.php по следующему маршруту.

Route::get('companytasks/{id}','TaskController@showOfCompany');

В моем TaskController у меня есть следующая функция:

public function showOfCompany($id)
{
// Get tasks with the specifiec company id
$companytasks = Task::findOrFail($id);
// Return single task as a resource
return new TaskResource($companytasks);
}

И мой ресурс выглядит так:

<?php

namespace App\Http\Resources;

use Illuminate\Http\Resources\Json\JsonResource;

class Task extends JsonResource
{
public function toArray($request)
{
return [
'id' => $this->id,
'TaskCompanyId' => $this->TaskCompanyId,
'TaskName' => $this->TaskName,
'TaskDescription' => $this->TaskDescription,
'Branche' => $this->Branche,
'Budget' => $this->Budget,
'TaskFinishDate' => $this->TaskFinishDate,
'PaydFor' => $this->PaydFor,
'PublicTask' => $this->PublicTask,
'created_at' => $this->created_at
];
}
}

Я хочу сделать выбор из базы данных, где ‘TaskCompanyId’ равен $ id.

Я могу сделать это с помощью следующей строки в моем контроллере:

$companytasks = Task::where('TaskCompanyId','=',$id)->get();

Но это не работает для меня, однако я могу добавить -> first () к нему, чтобы он возвращал только первое вхождение, но я хочу, чтобы все вхождения были возвращены. Как мне этого добиться?

0

Решение

Вы используете «CompanyTaskId» вместо «TaskCompanyId» в предложении where

0

Другие решения

Смотри хорошо, но попробуй с этим.

$companytasks =  App\Task::where( 'TaskCompanyId' , $id )->get();

Если вы хотите, вы можете заказать или разбить на страницы

$companytasks =  App\Task::where( 'TaskCompanyId' , $id )
->orderBy('CompanyTaskId', 'desc')
->paginate(15);
0

Мне удалось это исправить, изменив код ресурса на:

<?php

namespace App\Http\Resources;

use Illuminate\Http\Resources\Json\JsonResource;
use Illuminate\Http\Resources\Json\ResourceCollection;

class Task extends ResourceCollection
{
public function toArray($request)
{
return [
'data' => $this->collection
];
}
}

Создание выделения возвращает коллекцию вместо объекта и, следовательно, нуждается в ResourceCollection вместо JsonResource.

0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector