【发布时间】:2021-02-12 17:34:40
【问题描述】:
我有一个在 Cpanel 中运行的 Laravel 8 应用程序。我有一个表格来编辑博客文章。当我插入外部图像以显示在帖子正文中并保存表单时,应用程序崩溃。当我删除图像时,表单有效。
BadMethodCallException 方法 App\Http\Controllers\Backend\NewsBackController::show 不存在。
同一应用在另一台服务器上运行良好。
在控制器中更新
public function update(Request $request, $id)
{
$post = Post::find($id);
$post->title = $request->input('title');
$post->slug = $request->input('slug');
$post->sumary = $request->input('sumary');
$post->content = $request->input('content');
$post->img = $request->input('img');
$post->tag_id = $request->input('tag_id');
$post->pub_date = $request->input('pub_date');
$post->status = $request->input('status');
$post->save();
return redirect('backend-news/'.$id.'/edit')->with('success', 'Successful update!');
}
刀片中的表单
@csrf
<div class="row">
<div class="col-md-8">
<div class="form-group ">
<label >Title</label>
<input type="text" name='title' class="form-control" @if(!empty($content->title)) value="{{$content->title}}" @endif required>
</div>
@if ($form == 'update')
<div class="form-group ">
<label>Slug</label>
<input type="text" name='slug' class="form-control" @if(!empty($content->slug)) value="{{$content->slug}}" @endif>
</div>
@endif
<div class="form-group ">
<label >Sumary <small>(120 characters max.)</small></label>
<textarea name="sumary" class="form-control" rows="4">@if(!empty($content->sumary)){{$content->sumary}} @endif</textarea>
</div>
<div class="form-group ">
<label >Content</label>
<textarea name="content" class="form-control summernote" rows="15">@if(!empty($content->content)){{$content->content}} @endif</textarea>
</div>
</div>
<div class="col-md-4">
<div class="form-group">
<label>Image Large <small>(120 characters max.)</small></label>
<input type="text" name='img' class="form-control" @if(!empty($content->img)) value="{{$content->img}}" @endif>
</div>
<div class="row">
<div class="col-md-6">
<div class="form-group ">
<label for='group'>Tags</label>
<select class="form-control m-b" name="tag_id">
<option value='0'>--SELECT--</option>
@foreach ($tags as $tag)
@php
if($form == 'update'){
$selected = ($content->tag_id == $tag->id)?'selected':'';
}else{
$selected = '';
}
@endphp
<option value='{{$tag->id}}' {{$selected}}>{{$tag->name}}</option>
@endforeach
</select>
</div>
</div>
<div class="col-md-6">
<div class="form-group ">
<label >Pub Date</label>
<div class="input-group date">
<span class="input-group-addon"><i class="fa fa-calendar"></i></span><input type="text" class="form-control" name='pub_date'
@if (!empty($content->pub_date))
value="{{$content->pub_date}}"
@else
value="{{date('Y-m-d')}}"
@endif
>
</div>
</div>
</div>
</div>
<div class="form-group ">
<label for='group'>Status</label>
<select class="form-control m-b" name="status">
@if ($form == 'update')
@if ($content->status == 1)
<option value='1' selected>Published</option>
<option value='0'>Unpublish</option>
@else
<option value='1'>Published</option>
<option value='0' selected>Unpublish</option>
@endif
@else
<option value='1'>Published</option>
<option value='0'>Unpublish</option>
@endif
</select>
</div>
<div class="hr-line-dashed"></div>
<button type="submit" class="btn btn-w-m btn-success">Save</button>
@if(!empty($put))
<input type="hidden" name="_method" value="PUT">
@endif
<a href="/backend-news" class="btn btn-w-m btn-default"><i class="fas fa-undo-alt"></i> Return</a>
</div>
</div>
谢谢
【问题讨论】:
-
所以要么是该控制器上不存在
show函数,要么是缓存问题 -
在 Controllers\Backend\NewsBackController 中找到
show()方法
标签: laravel