Laravel 8使用相同的形式进行编辑和创建,

发布于 2025-02-11 08:09:14 字数 4530 浏览 1 评论 0原文

我是Laravel的新手,我正在尝试使用相同的表单字段进行更新和创建, 使用@include我加载相同的表单来创建和更新视图,有人可以解释为什么这是,而我缺少的是

feilds.blade.blade.php



<div class="form-group pad-top40">
    <div class="row">
        <label for="inputUsername" class="col-sm-4 control-label">
            Warehouse Number
        </label>
        <label for="inputUsername" class="col-sm-4 control-label">
            Number
        </label>
        <label for="inputUsername" class="col-sm-4 control-label">
            Warehouse Code
        </label>
    </div>
    
        <div class="col-sm-4">
            <div class="input-group">
                    <span class="input-group-append">
                        <span class="input-group-text"><i
                                    class="livicon" data-name="number"
                                    data-size="18" data-c="#000"
                                    data-hc="#000" data-loop="true"></i></span>
                    </span>
                <input type="number" class="form-control"
                placeholder="No" id="no" name="no">
            </div>
        </div>
        <div class="col-sm-4">
            <div class="input-group">
                    <span class="input-group-append">
                        <span class="input-group-text"><i
                                    class="livicon" data-name="number"
                                    data-size="18" data-c="#000"
                                    data-hc="#000" data-loop="true"></i></span>
                    </span>
                <input type="text" class="form-control"
                       placeholder="Warehouse Code" id="wh_code" name="wh_code" value='{{old('wh_code','')}}'>
            </div>
        </div>
    </div>
       <br>
       <br>

    <div class="row">
        <label for="address1" class="col-sm-8 control-label">
            Address Line 1
        </label>
        <label for="inputexpdate" class="col-sm-4 control-label">
            Register Date
        </label>
        
    </div>
    <div class="row">
        <div class="col-sm-8">
            <div class="input-group">
                    <span class="input-group-append">
                        <span class="input-group-text"><i
                                    class="livicon" data-name="address"
                                    data-size="18" data-c="#000"
                                    data-hc="#000" data-loop="true"></i></span>
                    </span>
                <input type="text" class="form-control" placeholder="Address" id="address1" name="address1">
            </div>
        </div>
        <div class="col-sm-4">
            <div class="input-group">
                    <span class="input-group-append">
                        <span class="input-group-text"><i
                                    class="livicon" data-name="number"
                                    data-size="18" data-c="#000"
                                    data-hc="#000" data-loop="true"></i></span>
                    </span>
                <input type="date" class="form-control"
                placeholder="dd/yy/mm" id="reg_date" name="reg_date">
            </div>
        </div>
    </div>
  </div>



edit.blade.blade.php




 <div class="card-body">
                {!! Form::model($warehouse, ['route' => ['admin.warehouses.update', collect($warehouse)->first() ], 'method' => 'patch']) !!}
                {{ csrf_field() }}
                @include('admin.warehouses.fields')

                {!! Form::close() !!}
                </div>

create.blade.blade.php

<div class="card-body">
            {!! Form::open(['route' => 'admin.warehouses.store']) !!}
            {{ csrf_field() }}
                @include('admin.warehouses.fields')

            {!! Form::close() !!}
        </div>

我尝试使用{ ()}}但不会加载,表单字段与表相同。 当我将其与Laravel Collective一起使用时,它可以很好地工作。



{!! Form::number('wh_no', null, ['class' => 'form-control','class'=>'livicon','data-name'=>'user']) !!}

I am new to Laravel and I am trying to use the same form fields for Update and create,
using @include I load same form to create and update views,can someone explain why this is,,and what I am missing is,

feilds.blade.php



<div class="form-group pad-top40">
    <div class="row">
        <label for="inputUsername" class="col-sm-4 control-label">
            Warehouse Number
        </label>
        <label for="inputUsername" class="col-sm-4 control-label">
            Number
        </label>
        <label for="inputUsername" class="col-sm-4 control-label">
            Warehouse Code
        </label>
    </div>
    
        <div class="col-sm-4">
            <div class="input-group">
                    <span class="input-group-append">
                        <span class="input-group-text"><i
                                    class="livicon" data-name="number"
                                    data-size="18" data-c="#000"
                                    data-hc="#000" data-loop="true"></i></span>
                    </span>
                <input type="number" class="form-control"
                placeholder="No" id="no" name="no">
            </div>
        </div>
        <div class="col-sm-4">
            <div class="input-group">
                    <span class="input-group-append">
                        <span class="input-group-text"><i
                                    class="livicon" data-name="number"
                                    data-size="18" data-c="#000"
                                    data-hc="#000" data-loop="true"></i></span>
                    </span>
                <input type="text" class="form-control"
                       placeholder="Warehouse Code" id="wh_code" name="wh_code" value='{{old('wh_code','')}}'>
            </div>
        </div>
    </div>
       <br>
       <br>

    <div class="row">
        <label for="address1" class="col-sm-8 control-label">
            Address Line 1
        </label>
        <label for="inputexpdate" class="col-sm-4 control-label">
            Register Date
        </label>
        
    </div>
    <div class="row">
        <div class="col-sm-8">
            <div class="input-group">
                    <span class="input-group-append">
                        <span class="input-group-text"><i
                                    class="livicon" data-name="address"
                                    data-size="18" data-c="#000"
                                    data-hc="#000" data-loop="true"></i></span>
                    </span>
                <input type="text" class="form-control" placeholder="Address" id="address1" name="address1">
            </div>
        </div>
        <div class="col-sm-4">
            <div class="input-group">
                    <span class="input-group-append">
                        <span class="input-group-text"><i
                                    class="livicon" data-name="number"
                                    data-size="18" data-c="#000"
                                    data-hc="#000" data-loop="true"></i></span>
                    </span>
                <input type="date" class="form-control"
                placeholder="dd/yy/mm" id="reg_date" name="reg_date">
            </div>
        </div>
    </div>
  </div>



edit.blade.php




 <div class="card-body">
                {!! Form::model($warehouse, ['route' => ['admin.warehouses.update', collect($warehouse)->first() ], 'method' => 'patch']) !!}
                {{ csrf_field() }}
                @include('admin.warehouses.fields')

                {!! Form::close() !!}
                </div>

create.blade.php

<div class="card-body">
            {!! Form::open(['route' => 'admin.warehouses.store']) !!}
            {{ csrf_field() }}
                @include('admin.warehouses.fields')

            {!! Form::close() !!}
        </div>

I have tried using {{old()}} but it won't load, the form fields are the same as the tables.
when I use the same with laravel collective,it work perfectly fine.



{!! Form::number('wh_no', null, ['class' => 'form-control','class'=>'livicon','data-name'=>'user']) !!}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

<逆流佳人身旁 2025-02-18 08:09:14

您必须传递该值的对象才能在数据库上显示值。让我向您展示每个步骤:

public function create(){
  $warehouse = new Warehouse();
  return view('admin.warehouses.create', compact('warehouse'));
}
public function edit($id){
  $warehouse = Warehouse::findOrFail($id);
  return view('admin.warehouses.edit', compact('warehouse'));
}

因为,我们已经在两个$ warehouse上传递了两个create.blade.blade.phpedit.blade.blade.php现在在两种情况下,我们都可以使用相同的情况。

现在,在表单上,​​您必须使用这样的值$ warehouse- fieldName

<input type="text" class="form-control @error('email') is-invalid @enderror" name="email" value="{{ old('email', $warehouse->email) }}">

如果您也想使用旧值,则可以使用旧值(fieldName,$ warehouse-&gt; fieldName)

You have to pass the object of the value to show the value on database. Let me show you every step:

public function create(){
  $warehouse = new Warehouse();
  return view('admin.warehouses.create', compact('warehouse'));
}
public function edit($id){
  $warehouse = Warehouse::findOrFail($id);
  return view('admin.warehouses.edit', compact('warehouse'));
}

Since, we have passed the $warehouse On both create.blade.php and edit.blade.php now we can use this same on both cases.

Now, on form, you have to use a value like this $warehouse->fieldName.

<input type="text" class="form-control @error('email') is-invalid @enderror" name="email" value="{{ old('email', $warehouse->email) }}">

If you want to use old values as well, you can use old(fieldName,$warehouse->fieldName)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文