[英]Can't call a function on Laravel
我正在尝试在Laravel上使用BootForm创建一个表单。 这是PostsController中函数的内容。
public function update($id,$request)
{
//
$post =findOrFail($id);
$post->update($request->all());
redirect(route('news'));
}
该视图是以下代码:
@extends ('layouts.app')
@section ('content')
<h1>Edit</h1>
{!! BootForm::openHorizontal (['url' => 'user', 'sm' => [2, 5], 'lg' => [2, 5], 'method'=> 'put']) !!}
{!! BootForm::text('Titre', $post->title) !!}
{!! BootForm::text('Slug', $post->slug) !!}
{!! BootForm::textarea('Contenu', $post->content) !!}
<p> <a class="btn btn-primary" href="{{route('news.update', $post) }}">Editer</a></p>
{!! BootForm::close() !!}
@stop
也有我正在使用的路线:
Route::resource('news', 'PostsController');
因此,当我单击按钮时,它会将我重定向到主目录(localhost:8000)。 控制器中的功能未调用。 不过,该职位没有任何变化。 问题出在更新功能上。 我会错过什么吗? 欢迎提供一些提示或帮助。
请替换为您的功能
public function update($id)
{
$post = Post::findOrFail($id);
$post->update(request()->all());
return redirect(route('news.index'));
}
并以此替换您的观点。
@extends('layouts.app')
@section('content')
<h1>Edit</h1>
<?php $formOptions = [
'url' => 'user',
'sm' => [2, 5],
'lg' => [2, 5],
'method'=> 'put'
]; ?>
{!! BootForm::openHorizontal($formOptions)->action(route('news.update', $post)) !!}
<input type="hidden" name="_method" value="PUT">
{!! BootForm::text('Titre', $post->title) !!}
{!! BootForm::text('Slug', $post->slug) !!}
{!! BootForm::textarea('Contenu', $post->content) !!}
{!! BootForm::submit('Editer') !!}
{!! BootForm::close() !!}
@stop
我不确定这些选项中的url
是什么,但是我仍然添加了它,因为您也...不使用<a href="....">...</a>
而是使用{!! BootForm::submit() !!}
{!! BootForm::submit() !!}
让我知道您是否还有其他问题。
尝试这样的命名路由:
Route::resource('news' ['uses' => 'UpdatesController@news', as 'updateNews']);
然后在UpdatesController类中,添加以下内容:
namespace App\Http\Controllers;
use App\Http\Controllers\controller;
class UpdateController extends Controller
{
public news() {
//your logics for updating here
}
}
如果news()
代码正确,那么http://localhost:8000/news/
现在应该返回所需的视图。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.