MethodNotAllowedHttpException при вызове Model :: create в другом сервисе класса - PullRequest
1 голос
/ 06 ноября 2019

Я добавляю регистр истории при отправке петиций в приложение Laravel, но когда я вызываю метод History :: create ([...]); , я получаю ошибку MethodNotAllowedHttpException . если я прокомментирую этот метод, все работает. Следуйте сервисному коду и истории модели:

use App\Entities\History;

class PetitionService {

public function newPetition(Request $request, Human $student) {

    //Se o Student estiver na primeira posição da DUPLA
    $doubleStudent = DoubleStudent::all()->where('status', '=', 'active')->where('student_id', '=', $student->id)->first();
    if ($doubleStudent == null) { // se não estiver na primeira posição da DUPLA
        $doubleStudent = DoubleStudent::all()->where('status', '=', 'active')->where('student2_id', '=', $student->id)->first();
    }
    $student_ok = $request->botao == 'ENVIAR'; // 'ENVIAR'(para o professor) ou 'SALVAR'(rascunho)

    $novapeticao = [
        'description' => $request['description'],
        'content' => $request['content'],
        'template_id' => $request['template_id'],
        'doubleStudent_id' => $doubleStudent->id,
        'group_id' => $doubleStudent->group_id,
        'version' => 1,
        'visible' => 'true',
    ];

    if ($student_ok) {
        $novapeticao['student_ok'] = 'true';
    }

    $petition = Petition::create($novapeticao);
    $this->countPetition($doubleStudent);

    $petition->petitionFirst = $petition->id;
    $petition->save();

    History::create([
        'student_id' => $student->id,
        'double_students_id' => $doubleStudent->id,
        'petition_id' => $petition->id,
        'petitionFirst' => $petition->petitionFirst
    ]);

    if ($request['images'] != null) {

        $files = $request->file('images');

        foreach ($files as $file) {

            $fname = $file->getClientOriginalName();

            Photo::create([
                'photo' => Storage::disk(env('STORAGE_TYPE', 'dropbox'))->putFileAs('petition/' . $petition->petitionFirst, $file, $fname),
                'petition_id' => $petition->id,
            ]);
        }
    }

    $mensagem = $student_ok ? 'Petição enviada com sucesso!' : 'Petição salva com sucesso!';
    $request->session()->flash('status', $mensagem);
}

Если я удалю какой-либо заполняемый элемент, появится сообщение об ожидаемом заполняемом элементе.

namespace App\Entities;

use Illuminate\Database\Eloquent\Model;

class History extends Model {
    protected $fillable = [
        'student_id',
        'doubleStudents_id',
        'petition_id', 
        'petitionFirst'
    ];
}

РЕДАКТИРОВАТЬ: имя таблицы базы данных "история", я думаю, что это ошибка при поиске имени таблицы, чтобы вставить дату.

1 Ответ

0 голосов
/ 07 ноября 2019

Исправлено, метод искал неправильное имя таблицы. По умолчанию Laravel вставляет 's' после имени класса для ссылки на таблицу в команде SQL. Я изменил имя таблицы на «records», и с моделью, названной «Record», и это сработало. Спасибо за поддержку!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...