Laravel: как написать маршрут для получения связи hasMany?Php

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

Сообщение Anonymous »


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

Событие модели

пространство имен App\Models; используйте Приложение\Модели\Активность; используйте Illuminate\Database\Eloquent\Model; используйте Illuminate\Database\Eloquent\Relations\HasMany; используйте Illuminate\Database\Eloquent\Factories\HasFactory; класс Event расширяет модель { используйте HasFactory; защищенная таблица $ = 'события'; защищенный $fillable = [ 'этикетка', 'дата', 'деятельность', 'Операции с кассетой', «банковские операции» ]; /** * Получите все мероприятия мероприятия. */ деятельность публичной функции(): HasMany { вернуть $this->hasMany(Activity::class); } } Действия модели

пространство имен App\Models; используйте Приложение\Модели\Участие; используйте Illuminate\Database\Eloquent\Model; используйте Illuminate\Database\Eloquent\Relations\HasOne; используйте Illuminate\Database\Eloquent\Relations\HasMany; используйте Illuminate\Database\Eloquent\Factories\HasFactory; используйте Illuminate\Database\Eloquent\Relations\HasManyThrough; Класс Activity расширяет модель { используйте HasFactory; защищенный $fillable = [ 'этикетка', 'идентификатор_события', 'memberPrice', 'другая цена', 'memberEntryFee', 'другая плата за вход', 'тип', «участие» ]; /** * Получите участие в мероприятии */ участие в публичной функции(): HasMany { вернуть $this->hasMany(Participation::class); } /** * Получить событие, связанное с действием */ публичная функция event(): HasOne { вернуть $this->hasOne(Event::class); } /** * Привлеките людей, которые участвуют в этом мероприятии. * */ участники публичной функции(): HasManyThrough { return $this->hasManyThrough(Person::class, Participation::class); } } В App/Http/Api/ActivityController у меня есть

пространство имен App\Http\Controllers\Api; используйте приложение\модели\событие; используйте Приложение\Модели\Активность; используйте Illuminate\Http\Request; используйте App\Http\Controllers\Controller; используйте App\Http\Resources\ActivityResource; используйте App\Http\Requests\StoreActivityRequest; класс ActivityController расширяет контроллер { индекс публичной функции ($ event_id) { return ActivityResource::collection(Activity::where('event_id', $event_id)->orderBy('id')->get()); } общедоступное хранилище функций (StoreActivityRequest $request) { Activity::create($request->validated()); //возвращаем только действия, связанные с событием return ActivityResource::collection(Activity::where('event_id', $request->event_id)->orderBy('id')->get()); } } В routes/api у меня есть

Route::middleware(['auth:sanctum'])->get('/user', function (Request $request) { вернуть $request->user(); }); Route::apiResource('person',PersonController::class)->промежуточное ПО(['auth'])->промежуточное ПО('App\Http\Middleware\Allowed'); Route::apiResource('event',EventController::class)->промежуточное ПО(['auth'])->промежуточное ПО('App\Http\Middleware\Allowed'); Route::get('activity/{event_id}',[ActivityController::class,'index'])->middleware(['auth'])->middleware(''); Route::apiResource('activity',ActivityController::class)->промежуточное ПО(['auth'])->промежуточное ПО('App\Http\Middleware\Allowed'); В моем проекте vue я ориентируюсь на следующее

async apiFetchEventActivities(event_id) { пытаться { ожидайте axios.get('sanctum/csrf-cookie') this.activityErrors = [] const { data } = await axios.get('/api/activity/' + event_id) this.activities = data.data } поймать ({ответ}) { this.activityErrors = [ответ.данные.сообщение, ответ.статус] возврат («неудача») } } Я получаю сообщение об ошибке 500 с сообщением: «Целевой класс [] не существует».

Является ли мой маршрут (предпоследний в маршрутах/api) неверным и почему? Как мне это написать?
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Можно ли в Yii2 получить уникальные объекты в отношении hasMany через другое отношение hasMany?
    Anonymous » » в форуме Php
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous
  • Можно ли в Yii2 получить уникальные объекты в отношении hasMany через другое отношение hasMany?
    Anonymous » » в форуме Php
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • Основные связи EF «один ко многим» HasOne().WithMany() и HasMany().WithOne()
    Anonymous » » в форуме C#
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Не возвращайте коллекцию с быстрой загрузкой hasMany Laravel
    Гость » » в форуме Php
    0 Ответы
    42 Просмотры
    Последнее сообщение Гость
  • Не возвращайте коллекцию с быстрой загрузкой hasMany Laravel
    Anonymous » » в форуме Php
    0 Ответы
    62 Просмотры
    Последнее сообщение Anonymous

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