我有一个问题,我使用相同的 Blade 模板来创建和插入。在我的 Controller 中,我在编辑功能和我使用的模板上创建了一个变量 ModificationMode isset()
方法。
Controller
public function edit($id)
{
$ModificationMode = 0;
$DataPraticien = \App\Praticien::find($id);
return view('AjoutePraticien', compact('DataPraticien'))->with('ModificationMode', $ModificationMode);
}
查看
@if(isset($ModificationMode))
<form method="post" action="{{route('prat.update', $DataPraticien ?? '')}}">
@csrf
@method('PATCH')
@else
<form action="{{route('prat.store')}}" method="post">
@endif
//stuff
//stuff
我将每个变量都设为可选。这是一个好主意吗?这种方法会给我带来一些问题吗?安全性如何?
最佳答案
在这里,我只是通过一个小例子向您解释如何使用相同的表单进行添加和编辑。当我需要这样做时,我会这样做:
// routes.php
Route::get('test', 'TestController@create');
Route::get('test/{id}', 'TestController@edit');
Controller .php
// TestController.php
public function create()
{
return view('form');
}
public function edit($id)
{
$resource = Resource::find($id);
return view('form', compact('resource'));
}
Blade 文件
// form.blade.php
<h2>{{ isset($resource) ? 'Edit a Record' : 'Create a new Record' }}</h2>
<form action="{{ isset($resource) ? '/test/' . $resource->id : '/test' }}" method="post">
<label>Title</label>
<input type="text" name="title" value="{{ old('title', isset($resource) ? $resource->title : '') }}" />
<label>Description</label>
<textarea name="description">{{ old('description', isset($resource) ? $resource->description : '') }}</textarea>
<button type="submit">{{ isset($resource) ? 'Update' : 'Create' }}</button>
</form>
关于php - 如何在 Laravel 中使用相同的 Blade 模板对一个 Controller 进行添加和编辑操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59743352/