Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.03.2019, 13:59   #1
vovan2012
Новичок
Джуниор
 
Регистрация: 26.01.2012
Сообщений: 2
По умолчанию Не работает update

Только недавно начал изучать эту тему, поэтому извиняюсь заранее за не очень умные вопросы и надеюсь на помощь. Проект на Ларе+Vue.

Есть контроллер документов.

Код:
<?php
 
namespace App\Http\Controllers;
 
use App\Document;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
 
class DocumentsController extends Controller
{
    public function index()
    {
        return response(Document::all()->jsonSerialize(), Response::HTTP_OK);
    }
 
    public function store(Request $request)
    {
        $document = new Document();
 
        $document->title = $request->get('title');
        $document->reg_date = $request->get('reg_date');
        $document->save();
 
        return response($document->jsonSerialize(), Response::HTTP_CREATED);
    }
 
    public function destroy($id)
    {
        $document = Document::find($id);
        $document->delete();
    }
 
    public function update(Request $request, $id)
    {
        $document = Document::findOrFail($id);
        $document->update($request->all());
 
        return response(null, Response::HTTP_OK);
    }
 
    public function show($id)
    {
        return Document::findOrFail($id);
    }
}
Указываю на него в rotes:

Route::resource('/documents', 'DocumentsController', ['except' => ['edit', 'create']]);

Форма редактирования документа:

Код:
<template>
    <div>
        <div class="form-group">
            <router-link to="/" class="btn btn-default">Вернуться</router-link>
        </div>
 
        <div class="panel panel-default">
            <div class="panel-heading">Изменение документа</div>
            <div class="panel-body">
                <form @submit.prevent="submit()">
                    <div class="row">
                        <div class="col-xs-12 form-group">
                            <label class="control-label">Название</label>
                            <input type="text" v-model="document.title" class="form-control">
                        </div>
                    </div>
                    <div class="row">
                        <div class="col-xs-12 form-group">
                            <label class="control-label">Дата регистрации</label>
                            <input type="text" v-model="document.reg_date" class="form-control">
                        </div>
                    </div>
                    <div class="row">
                        <div class="col-xs-12 form-group">
                            <button type="submit" class="btn btn-success">Edit</button>
                        </div>
                    </div>
                </form>
            </div>
        </div>
    </div>
</template>
 
<script>
    export default {
        mounted() {
            let id = this.$route.params['id'];
            this.documentId = id;
            window.axios.get('/api/documents/' + id)
                .then(resp => this.document = resp.data)
                .catch(function () {
                    alert("Не удается загрузить документ в форму редактирования")
                });
        },
        data: function () {
            return {
                documentId: null,
                document: {
                    title: '',
                    reg_date: '',
                }
            }
        },
        methods: {
            submit() {
                window.axios.patch('api/documents/' + this.documentId, this.document).then(resp => {
                    this.$router.push({path: 'dms'});
                })
                    .catch(function (resp) {
                        alert("Бля... Не удалось изменить документ.");
                    });
            }
        }
    }
</script>
при попытке изменить что либо - ответ:
PATCH http://mis/api/documents/20 500 (Internal Server Error)

Не подскажете, куда копать?

c:\PHP\OSPanel\domains\mis\storage\ logs\

[2019-03-20 09:46:08] local.ERROR: id {"exception":"[object] (Illuminate\\Database\\Eloquent\\Ma ssAssignmentException(code: 0): id at C:\\PHP\\OSPanel\\domains\\mis\\ven dor\\laravel\\framework\\src\\Illum inate\\Database\\Eloquent\\Model.ph p:232)
[stacktrace]
#0 C:\\PHP\\OSPanel\\domains\\mis\\ven dor\\laravel\\framework\\src\\Illum inate\\Database\\Eloquent\\Model.ph p(490): Illuminate\\Database\\Eloquent\\Mod el->fill(Array)
#1 C:\\PHP\\OSPanel\\domains\\mis\\app \\Http\\Controllers\\DocumentsContr oller.php(36): Illuminate\\Database\\Eloquent\\Mod el->update(Array)
#2 [internal function]: App\\Http\\Controllers\\DocumentsCo ntroller->update(Object(Illuminate\\Http\\Re quest), '20')
#3 C:\\PHP\\OSPanel\\domains\\mis\\ven dor\\laravel\\framework\\src\\Illum inate\\Routing\\Controller.php(54): call_user_func_array(Array, Array)
#4 C:\\PHP\\OSPanel\\domains\\mis\\ven dor\\laravel\\framework\\src\\Illum inate\\Routing\\ControllerDispatche r.php(45): Illuminate\\Routing\\Controller->callAction('update', Array)
#5 C:\\PHP\\OSPanel\\domains\\mis\\ven dor\\laravel\\framework\\src\\Illum inate\\Routing\\Route.php(212): Illuminate\\Routing\\ControllerDisp atcher->dispatch(Object(Illuminate\\Routin g\\Route), Object(App\\Http\\Controllers\\Docu mentsController), 'update')
#6 C:\\PHP\\OSPanel\\domains\\mis\\ven dor\\laravel\\framework\\src\\Illum inate\\Routing\\Route.php(169): Illuminate\\Routing\\Route->runController()
#7 C:\\PHP\\OSPanel\\domains\\mis\\ven dor\\laravel\\framework\\src\\Illum inate\\Routing\\Router.php(658): Illuminate\\Routing\\Route->run()
#8 C:\\PHP\\OSPanel\\domains\\mis\\ven dor\\laravel\\framework\\src\\Illum inate\\Routing\\Pipeline.php(30): Illuminate\\Routing\\Router->Illuminate\\Routing\\{closure}(Obj ect(Illuminate\\Http\\Request))
#9 C:\\PHP\\OSPanel\\domains\\mis\\ven dor\\laravel\\framework\\src\\Illum inate\\Routing\\Middleware\\Substit uteBindings.php (41): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Obj ect(Illuminate\\Http\\Request))
vovan2012 вне форума Ответить с цитированием
Старый 20.03.2019, 16:00   #2
vovan2012
Новичок
Джуниор
 
Регистрация: 26.01.2012
Сообщений: 2
По умолчанию

Мне тут соседи подсказали.

Цитата:
Сообщение от sash23
В модели Document есть fillable ?
И заработало!
vovan2012 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
update shuhracharya Microsoft Office Access 17 12.12.2015 13:20
update kilogram SQL, базы данных 1 27.06.2012 16:33
UPDATE sql hunter03 Помощь студентам 5 14.12.2011 18:00
update shad0w SQL, базы данных 3 27.10.2009 11:44
не работает UPDATE chekanoff БД в Delphi 1 27.02.2008 21:57