Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 18.02.2018 12:24:45

Не работает редактирование записи. CRUD

Здравствуйте. Не работает редактирование записи, делаю crud для админки.
Route:

Route::resource('admin-layouts','Admin\LayoutsController');

Контроллер:

class LayoutsController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        MetaTag::set('title', 'Шапка и футер | WestCall');
        MetaTag::set('description', 'Шапка и футер | WestCall - telecommunications');
        MetaTag::set('keywords', 'Шапка и футер | WestCall, telecommunications');
        $post = Layouts::orderby('id', 'asc')->paginate(5);

        return view('admin.lay.index',  compact('post'));
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        MetaTag::set('title', 'Создать | WestCall');
        MetaTag::set('description', 'Создать | WestCall - telecommunications');
        MetaTag::set('keywords', 'Создать| WestCall, telecommunications');

        return view('admin.lay.create');
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        MetaTag::set('title', 'Обновить | WestCall');
        MetaTag::set('description', 'Обновить | WestCall - telecommunications');
        MetaTag::set('keywords', 'Обновить| WestCall, telecommunications');

        $post = new Layouts();

        $post->phone = $request->phone;
        $post->head_text = $request->head_text;
        $post->head_text2 = $request->head_text2;
        $post->recvizit = $request->recvizit;
        $post->recvizit2 = $request->recvizit2;
        $post->adress = $request->adress;

        $post->save();

        $request->session()->flash('success', 'Запись опубликована!');
        return redirect()->route('admin-layouts.show', $post->id);
    }

    /**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function show($id)
    {
        MetaTag::set('title', 'Просмотр | WestCall');
        MetaTag::set('description', 'Просмотр | WestCall - telecommunications');
        MetaTag::set('keywords', 'Просмотр| WestCall, telecommunications');


        $post = Layouts::find($id);

        return view('admin.lay.show')->withPost($post);
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function edit($id)
    {
        MetaTag::set('title', 'Редактировать | WestCall');
        MetaTag::set('description', 'Редактировать | WestCall - telecommunications');
        MetaTag::set('keywords', 'Редактировать| WestCall, telecommunications');
        $post = Layouts::find($id);

        return view('admin.lay.edit')->withPost($post);
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, $id)
    {
        MetaTag::set('title', 'Обновить | WestCall');
        MetaTag::set('description', 'Обновить | WestCall - telecommunications');
        MetaTag::set('keywords', 'Обновить| WestCall, telecommunications');

        $post = Layouts::find($id);

        $post->phone = $request->phone;
        $post->head_text = $request->head_text;
        $post->head_text2 = $request->head_text2;
        $post->recvizit = $request->recvizit;
        $post->recvizit2 = $request->recvizit2;
        $post->adress = $request->adress;

        $post->save();

        $request->session()->flash('success', 'Успешное редактирование!');

        return redirect()->route('admin-layouts.show', $post->id);
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function destroy($id)
    {
        $post = Layouts::find($id);

        $post->delete();

        return view('admin.lay.index');
    }
}

Шаблон edit.blade.php:

@extends('admin.layouts.main')
@section('content')
    <div class="container">
        <div class="row">
            <div class="col-md-12 ppp">
                {!! Form::model($post, array('route' => array('admin-layouts.update', $post->id), 'method' => 'PUT')) !!}
                    <div class="col-md-12">
                        <div class="col-md-12">
                            {{ Form::label('phone', 'Телефон')}}
                        </div>
                       {{ Form::text('phone', null, ['class' => 'adm_pole'])}}
                    </div>
                    <div class="col-md-12">
                        <div class="col-md-12">
                            {{ Form::label('head_text', 'Текст один')}}
                        </div>
                        {{ Form::textarea('head_text', null, ['class' => 'adm_pole2', 'id' => 'editor1'])}}
                    </div>
                    <div class="col-md-12">
                        <div class="col-md-12">
                            {{ Form::label('head_text2', 'Текст два')}}
                        </div>
                        {{ Form::textarea('head_text2', null, ['class' => 'adm_pole2', 'id' => 'editor2'])}}
                    </div>
                    <div class="col-md-12">
                        <div class="col-md-12">
                            {{ Form::label('recvizit', 'Реквизиты 1')}}
                        </div>
                        {{ Form::textarea('recvizit', null, ['class' => 'adm_pole2', 'id' => 'editor3'])}}
                    </div>
                    <div class="col-md-12">
                        <div class="col-md-12">
                            {{ Form::label('recvizit2', 'Реквизиты 2')}}
                        </div>
                        {{ Form::textarea('recvizit2', null, ['class' => 'adm_pole2', 'id' => 'editor4'])}}
                    </div>
                <div class="col-md-12">
                    <div class="col-md-12">
                        {{ Form::label('adress', 'Адрес')}}
                    </div>
                    {{ Form::text('adress', null, ['class' => 'adm_pole'])}}
                </div>
                <div class="col-md-12">
                    <div class="col-md-12">
                    {{ Form::submit('Редактировать', ['class' => 'adm_pole adm_polebt'])}}
                    </div>
                </div>
                {!! Form::close() !!}
            </div>
        </div>
    </div>
@stop

Модель:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Layouts extends Model
{
    protected $table = 'layouts';
}

При редактировании, по нажатию на сохранить переходит сюда: сайт/admin-layouts/1, но появляется просто белый экран. как обновляю странице, появляется НЕ измененный вид.https://c2n.me/3RZVJWj
подскажите, почему не сохраняет и такое происходит?

Изменено Artikk (18.02.2018 12:52:20)

Не в сети

#2 18.02.2018 12:28:21

Re: Не работает редактирование записи. CRUD

и еще 2 вопроса.
1. нет ли в laravel crud generator, как в yii2? т.к. с 0 все писать каждый раз не сильно хочется...
2. и можете рассказать про каждый метод, зачем например метод edit и update, store? Поскольку я работал с yii2? там вроде как проще с этим....

Не в сети

#3 19.02.2018 16:11:20

Re: Не работает редактирование записи. CRUD

неужели никто не знает?

Не в сети

#4 21.02.2018 23:56:26

Re: Не работает редактирование записи. CRUD

method put в форме не сработает если не ошибаюсь. не пользуюсь конструктором форм.
Нужно добавить скрытое поле <input type="hidden" name="_method" value="PUT"> или {{csrf_field}} сделает тоже самое

По вопросам
1. php artisan прекрасно помогает
2. В документации все прекрасно расписано

Не в сети

Подвал раздела