Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP: Laravel
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
progervova
0 / 0 / 0
Регистрация: 20.03.2019
Сообщений: 25
1

Не работает update

20.03.2019, 13:51. Просмотров 952. Ответов 6

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

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

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<?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:
PHP
1
Route::resource('/documents', 'DocumentsController', ['except' => ['edit', 'create']]);
Есть таблица документов.

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
<template>
 
    <div>
        <div class="row">
            <div class="col-lg-12 margin-tb">
                <router-link :to="{name: 'dmsCreate'}" class="btn btn-success">Create</router-link>
            </div>
        </div>
 
        <div class="data-table bg-light">
            <table class="table table-bordered">
                <thead>
                <tr>
                    <th scope="col">#</th>
                    <th scope="col">Название</th>
                    <th scope="col">Дата регистрации</th>
                    <th scope="col" width="200px">Действия</th>
                </tr>
                </thead>
                <tbody>
 
                <tr v-for="row in rows" v-bind:key="row.id" class="align-middle">
                    <td>{{row.id}}</td>
                    <td>{{row.title}}</td>
                    <td>{{row.reg_date}}</td>
 
                    <router-link :to="{name: 'dmsEdit', params: {id: row.id}}">
                        <button class="btn btn-primary btn-sm">Edit</button>
                    </router-link>
                    <button class="btn btn-danger btn-sm" @click.prevent="deleteItem(row)">Delete</button>
                </tr>
 
                </tbody>
            </table>
        </div>
    </div>
</template>
 
<script>
    export default {
        data() {
            return {
                rows: []
            }
        },
        created() {
            this.read();
        },
        methods: {
            read() {
                window.axios.get('/api/documents').then(resp => {
                    this.rows = resp.data;
                })
            },
            deleteItem: function (item) {
                window.axios.delete('api/documents/' + item.id).then((response) => {
                    this.read();
                });
            },
        }
    }
</script>
Форма редактирования документа:
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
<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)

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

Добавлено через 53 минуты
c:\PHP\OSPanel\domains\mis\storage\logs\

[2019-03-20 09:46:08] local.ERROR: id {"exception":"[object] (Illuminate\\Database\\Eloquent\\MassAssignmentException(code: 0): id at C:\\PHP\\OSPanel\\domains\\mis\\vendor\\laravel\\framework\\src\\Illuminate\\Database\\Eloquent\\Model.php:232)
[stacktrace]
#0 C:\\PHP\\OSPanel\\domains\\mis\\vendor\\laravel\\framework\\src\\Illuminate\\Database\\Eloquent\\Model.php(490): Illuminate\\Database\\Eloquent\\Model->fill(Array)
#1 C:\\PHP\\OSPanel\\domains\\mis\\app\\Http\\Controllers\\DocumentsController.php(36): Illuminate\\Database\\Eloquent\\Model->update(Array)
#2 [internal function]: App\\Http\\Controllers\\DocumentsController->update(Object(Illuminate\\Http\\Request), '20')
#3 C:\\PHP\\OSPanel\\domains\\mis\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Controller.php(54): call_user_func_array(Array, Array)
#4 C:\\PHP\\OSPanel\\domains\\mis\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\ControllerDispatcher.php(45): Illuminate\\Routing\\Controller->callAction('update', Array)
#5 C:\\PHP\\OSPanel\\domains\\mis\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Route.php(212): Illuminate\\Routing\\ControllerDispatcher->dispatch(Object(Illuminate\\Routing\\Route), Object(App\\Http\\Controllers\\DocumentsController), 'update')
#6 C:\\PHP\\OSPanel\\domains\\mis\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Route.php(169): Illuminate\\Routing\\Route->runController()
#7 C:\\PHP\\OSPanel\\domains\\mis\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php(658): Illuminate\\Routing\\Route->run()
#8 C:\\PHP\\OSPanel\\domains\\mis\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Pipeline.php(30): Illuminate\\Routing\\Router->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#9 C:\\PHP\\OSPanel\\domains\\mis\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Middleware\\SubstituteBindings.php (41): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#10 C:\\PHP\\OSPanel\\domains\\mis\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(149): Illuminate\\Routing\\Middleware\\SubstituteBindings->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#11 C:\\PHP\\OSPanel\\domains\\mis\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#12 C:\\PHP\\OSPanel\\domains\\mis\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Middleware\\ThrottleRequests.php(5 7): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#13 C:\\PHP\\OSPanel\\domains\\mis\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(149): Illuminate\\Routing\\Middleware\\ThrottleRequests->handle(Object(Illuminate\\Http\\Request), Object(Closure), 60, '1')
#14 C:\\PHP\\OSPanel\\domains\\mis\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#15 C:\\PHP\\OSPanel\\domains\\mis\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(102): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#16 C:\\PHP\\OSPanel\\domains\\mis\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php(660): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))
#17 C:\\PHP\\OSPanel\\domains\\mis\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php(635): Illuminate\\Routing\\Router->runRouteWithinStack(Object(Illuminate\\Routing\\Route), Object(Illuminate\\Http\\Request))
#18 C:\\PHP\\OSPanel\\domains\\mis\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php(601): Illuminate\\Routing\\Router->runRoute(Object(Illuminate\\Http\\Request), Object(Illuminate\\Routing\\Route))
#19 C:\\PHP\\OSPanel\\domains\\mis\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php(590): Illuminate\\Routing\\Router->dispatchToRoute(Object(Illuminate\\Http\\Request))
#20 C:\\PHP\\OSPanel\\domains\\mis\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php(176): Illuminate\\Routing\\Router->dispatch(Object(Illuminate\\Http\\Request))
#21 C:\\PHP\\OSPanel\\domains\\mis\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Pipeline.php(30): Illuminate\\Foundation\\Http\\Kernel->Illuminate\\Foundation\\Http\\{closure}(Object(Illuminate\\Http\\Request))
#22 C:\\PHP\\OSPanel\\domains\\mis\\vendor\\fideloper\\proxy\\src\\TrustProxies.php(56): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#23 C:\\PHP\\OSPanel\\domains\\mis\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(149): Fideloper\\Proxy\\TrustProxies->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#24 C:\\PHP\\OSPanel\\domains\\mis\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#25 C:\\PHP\\OSPanel\\domains\\mis\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsReq uest.php(30): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#26 C:\\PHP\\OSPanel\\domains\\mis\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(149): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#27 C:\\PHP\\OSPanel\\domains\\mis\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#28 C:\\PHP\\OSPanel\\domains\\mis\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsReq uest.php(30): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#29 C:\\PHP\\OSPanel\\domains\\mis\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(149): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#30 C:\\PHP\\OSPanel\\domains\\mis\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#31 C:\\PHP\\OSPanel\\domains\\mis\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\ValidatePostS ize.php(27): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#32 C:\\PHP\\OSPanel\\domains\\mis\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(149): Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#33 C:\\PHP\\OSPanel\\domains\\mis\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#34 C:\\PHP\\OSPanel\\domains\\mis\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\CheckForMaint enanceMode.php(46): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#35 C:\\PHP\\OSPanel\\domains\\mis\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(149): Illuminate\\Foundation\\Http\\Middleware\\CheckForMaintenanceMode->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#36 C:\\PHP\\OSPanel\\domains\\mis\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#37 C:\\PHP\\OSPanel\\domains\\mis\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(102): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#38 C:\\PHP\\OSPanel\\domains\\mis\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php(151): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))
#39 C:\\PHP\\OSPanel\\domains\\mis\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php(116): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter(Object(Illuminate\\Http\\Request))
#40 C:\\PHP\\OSPanel\\domains\\mis\\public\\index.php(55): Illuminate\\Foundation\\Http\\Kernel->handle(Object(Illuminate\\Http\\Request))
#41 {main}
"}
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.03.2019, 13:51
Ответы с готовыми решениями:

Почему не работает Update, но работает аналогичный Delete?
В xmal есть datagrid в него подтянута из базы информация. Название и количество. Надо сделать во...

Почему Update не работает а insert работает?
Почему Update не работает а insert работает? вот код if Request.QueryString('act')='sav' then...

Не работает UPDATE
Есть 3 таблицы на форме и в базе, которые нужно обновить. После выполнения следующего кода на форме...

не работает UPDATE
Смысл заключается в названии темы. Не хочет обновлять данные в строке с определенным id. Изменял на...

Не работает Update
Просто после точки его нету в свойствах, что делать, помогите? using System; using...

6
StudAssistant
Эксперт
34811 / 27003 / 5019
Регистрация: 17.04.2006
Сообщений: 49,622
20.03.2019, 13:51
Закажите контрольную, курсовую, диплом или любую другую студенческую работу здесь.
6
sash23
332 / 250 / 171
Регистрация: 31.05.2016
Сообщений: 679
20.03.2019, 14:25 2
Лучший ответ Сообщение было отмечено progervova как решение

Решение

В модели Document есть fillable ?
1
progervova
0 / 0 / 0
Регистрация: 20.03.2019
Сообщений: 25
20.03.2019, 14:47  [ТС] 3
Добавлено через 14 минут
Цитата Сообщение от sash23 Посмотреть сообщение
В модели Document есть fillable ?
Не было, добавил.

PHP
1
protected $fillable = array('title', 'reg_date', 'reg_number', 'id');
Но это, к сожалению, ничего не изменило.
0
bps_spb
0 / 0 / 0
Регистрация: 20.03.2019
Сообщений: 2
20.03.2019, 14:59 4
А как выглядит ваш вьюшный роутер?
0
progervova
0 / 0 / 0
Регистрация: 20.03.2019
Сообщений: 25
20.03.2019, 15:00  [ТС] 5
Цитата Сообщение от bps_spb Посмотреть сообщение
А как выглядит ваш вьюшный роутер?
import Vue from "vue";
import VueRouter from "vue-router";

import Menu from '.././components/Menu'
import Dms from '.././components/Dms'
import Stock from '.././components/Stock'
import DocumentCreate from '.././components/DocumentCreate'
import DocumentEdit from '.././components/DocumentEdit'

Vue.use(VueRouter);

export default new VueRouter({
mode: 'history',
routes: [
{
path: '/',
name: 'menu',
component: Menu
},
{
path: '/menu',
name: 'menu',
component: Menu
},
{
path: '/dms',
name: 'dms',
component: Dms,
},
{
path: '/dmsCreate',
name: 'dmsCreate',
component: DocumentCreate,
},
{
path: '/dmsEdit',
name: 'dmsEdit',
component: DocumentEdit,
},
{
path: '/stock',
name: 'stock',
component: Stock,
},
],
});
0
sash23
332 / 250 / 171
Регистрация: 31.05.2016
Сообщений: 679
20.03.2019, 15:46 6
progervova, а если id из fillable убрать?
0
progervova
0 / 0 / 0
Регистрация: 20.03.2019
Сообщений: 25
20.03.2019, 15:47  [ТС] 7
Цитата Сообщение от sash23 Посмотреть сообщение
В модели Document есть fillable ?
Цитата Сообщение от progervova Посмотреть сообщение
Не было, добавил. Но это, к сожалению, ничего не изменило.
Эх, я .... В спешке fillable в контроллер поставил.
Добавил в модель, и заработало!!! )) Спасибо!!!
0
20.03.2019, 15:47
StackOverflow
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.03.2019, 15:47

Не работает UPDATE
Не работает второй запрос, первый работает отлично. $edit_ans=mysql_query('UPDATE `clients` SET...

Не работает Update
Доброго времени суток. Возникла проблема с обновлением. Нужно обновить числовое поле в таблице...

НЕ РАБОТАЕТ UPDATE
НЕ ПОЙМУ, ПОЧЕМУ UPDATE НЕ ВОСПРИНИМАЕТ ПОЛЕ 'СУММА' var D1:real; begin D1:=...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru