php - 如何在 Laravel 中使用相同的 Blade 模板对一个 Controller 进行添加和编辑操作?

标签 php laravel crud laravel-blade

我有一个问题,我使用相同的 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/

相关文章:

python - 提交Django表单后获取GET Var的PK

java - 试图告诉用户他们在 java 中输入了错误的值

php - 如何解决 "Circular reference detected for service"问题?

php - 通过纯枚举实现 JsonSerialized

php - 我的 laravel 查询仅返回数据库中的最后一条记录

javascript - Ionic 无法打开 Cors

ASP.NET MVC 中的 jQuery CRUD

php - JTable PHP 更新不起作用

php - Opencart - 当我在布局中选择它时,模块没有出现

php - Laravel ORM 问题