Да в update. У меня там дефолтный request, вы вместо него ставите свой реквест
Форма тогда не отправляется. Страница перезагружается, но не меняется.
]]>TrueKanonir пишет:Сделал у себя, на только что установленном фрейме. Все пашет.
ControllerБлагодарю Вас. Редактирование заработало.
А в каком методе нужно дописать Request для валидации?
в update?
Да в update. У меня там дефолтный request, вы вместо него ставите свой реквест
]]>Сделал у себя, на только что установленном фрейме. Все пашет.
Controller
Благодарю Вас. Редактирование заработало.
А в каком методе нужно дописать Request для валидации?
в update?
TrueKanonir пишет:Mick_20 пишет:Я в общем переделал открытие формы вот так:
{!! Form::open(array('action' => array('ArticlesController@update', $article->id))) !!}
Теперь id статьи вроде передается: http://hostingkartinok.com/show-image.p … 972e173a97
Но ругается на роуты, если не ошибаюсь: http://hostingkartinok.com/show-image.p … f040a3ee51
Вы не указали метод patch
UPD: Он находит статью для редактирования, но при отправке формы вы не указываете id статьи. В контроллере сделайте dd($request->all()). Создайте input type hidden value="{{ $article->id }}" name idОпять выдает: MethodNotAllowedHttpException in RouteCollection.php line 218:
Сделал у себя, на только что установленном фрейме. Все пашет.
Controller
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function edit($id)
{
$article = Article::find($id);
return view('edit', compact('article'));
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
$article = Article::find($id);
$article->update($request->all());
return redirect('articles');
}
View
@extends('layout')
@section('content')
<h1>Редактирование статьи {{ $article->name }}</h1>
{!! Form::model($article, ['method' => 'patch', 'url' => ['articles/' . $article->id]]) !!}
{!! Form::input('text', 'name', null) !!}
{!! Form::input('text', 'slug', null) !!}
{!! Form::textarea('body', null) !!}
<button type="submit">Отправить</button>
{!! Form::close() !!}
@endsection
Route
Route::resource('articles', 'ArticlesController');
Mick_20 пишет:Я в общем переделал открытие формы вот так:
{!! Form::open(array('action' => array('ArticlesController@update', $article->id))) !!}
Теперь id статьи вроде передается: http://hostingkartinok.com/show-image.p … 972e173a97
Но ругается на роуты, если не ошибаюсь: http://hostingkartinok.com/show-image.p … f040a3ee51
Вы не указали метод patch
UPD: Он находит статью для редактирования, но при отправке формы вы не указываете id статьи. В контроллере сделайте dd($request->all()). Создайте input type hidden value="{{ $article->id }}" name id
Опять выдает: MethodNotAllowedHttpException in RouteCollection.php line 218:
]]>Mick_20 пишет:А зачем обнулять инпуты? Я же открываю статью на редактирование?
Form model binding , значения подставляются. Попробуйте как я вам в примере показал сделать. Все сработает.
Не сработало: http://hostingkartinok.com/show-image.p … 84b1d9c8aa
]]>Я в общем переделал открытие формы вот так:
{!! Form::open(array('action' => array('ArticlesController@update', $article->id))) !!}
Теперь id статьи вроде передается: http://hostingkartinok.com/show-image.p … 972e173a97
Но ругается на роуты, если не ошибаюсь: http://hostingkartinok.com/show-image.p … f040a3ee51
Вы не указали метод patch
UPD: Он находит статью для редактирования, но при отправке формы вы не указываете id статьи. В контроллере сделайте dd($request->all()). Создайте input type hidden value="{{ $article->id }}" name id
А зачем обнулять инпуты? Я же открываю статью на редактирование?
Form model binding , значения подставляются. Попробуйте как я вам в примере показал сделать. Все сработает.
]]>{!! Form::open(array('action' => array('ArticlesController@update', $article->id))) !!}
Теперь id статьи вроде передается: http://hostingkartinok.com/show-image.p … 972e173a97
Но ругается на роуты, если не ошибаюсь: http://hostingkartinok.com/show-image.p … f040a3ee51
]]>{!! Form::model($article, ['method' => 'patch', 'route' => 'articles.update']) !!}
И во всех инпутах добавьте вместо $article->value параметр null что б вот так получилось
Form::text('title', null) !!}
Если так не получится, то вот так попробуйте
Form::input('text', 'title' , null) !!}
}%Mick_20,
В %%Form::open%% добавьте %%'method' => 'patch'%% в итоге получится
%%(php)
{!! Form::open(['method' => 'patch', 'route' => 'articles.update']) !!}
%%
И отдельный роут для просмотра можно убрать, он в ресурсе уже есть
Отдельный роут пока не сделал. Надо разбираться.
А форма редактирования теперь другую ошибку пишет:
http://hostingkartinok.com/show-image.p … 9fa6caa1a8
Почему-то id не передается и как следствие не обновляется статья.
Контроллер:
public function update(Request $request, $id)
{
$article = Article::findOrFail($id);
$article->update($request->all());
$article->save();
return back()->with('message','Статья обновлена');
}
{!! Form::open(['method' => 'patch', 'route' => 'articles.update']) !!}
И отдельный роут для просмотра можно убрать, он в ресурсе уже есть
]]>Открываю статью на редактирование. Нажимаю "Сохранить" и получаю ошибку:
http://hostingkartinok.com/show-image.p … 7e1cd95e1b
Подскажите?
Отображение формы редактирования:
{!! Form::open(['route' => 'articles.update']) !!}
{!! Form::label('title', 'Заголовок') . Form::text('title', $article->title) !!}<br>
{!! Form::label('alias', 'URL псевдоним') . Form::text('alias', $article->alias) !!}<br>
{!! Form::label('excerpt', 'Короткое описание') . Form::text('excerpt', $article->excerpt) !!}<br>
{!! Form::label('content', 'Полный текст статьи') . Form::textarea('content', $article->content) !!}<br>
{!! Form::submit('Сохранить') !!}
{!! Form::close(); !!}
Контроллер:
...
public function edit($id)
{
$article=Article::find($id);
return view('articleedit',['article'=>$article]);
}
public function update(Request $request, $id) /* не обновляет статью. ошибка! */
{
$article=Article::find($id);
$article->update($request->all());
$article->save();
//return back()->with('message','Статья обновлена');
}
...
Роуты:
Route::get('/', [
'uses' => 'ArticlesController@index',
'as' => 'articles'
]);
Route::get('article/{id}', 'ArticlesController@showArticle'); //страница просмотра статьи
$router->resource('articles', 'ArticlesController');//создает все маршруты дл¤ манипул¤ций со стать¤ми