【问题标题】:Laravel - I can't input data to my databaseLaravel - 我无法将数据输入到我的数据库
【发布时间】:2021-06-05 13:30:43
【问题描述】:

所以我想在 1 个控制器中创建 2 个商店。当我输入时,我确实返回了索引页面,但我提交的数据不存在。然后我看到了我的本地主机,但我输入的数据也不存在。当我输入时没有错误消息。所以我不知道我的错误在哪里。

这是我的看法

createincome.blade.php

@extends('admin/admin')
@section('content')
    <div class="row">
        <div class="col-12">
            {{ Form::open(['route'=>'financials.incomestore', 'files'=>true]) }}
                <div class="card">
                    <div class="card-header">
                        <h3 class="card-title">Tambah Keuangan</h3>
                    </div>
                    <div class="card-body">
                        @if(!empty($errors->all()))
                        <div class="alert alert-danger">
                            {{ Html::ul($errors->all())}}
                        </div>
                        @endif
                        <div class="row">
                            <div class="col-md-6">
                                <div class="form-group">
                                    {{ Form::label('date', 'Tanggal') }}
                                    {{ Form::text('date', '', ['class'=>'form-control', 'id'=>'date', 'name'=>'date', 'placeholder'=>'Masukkan Tanggal']) }}       
                                </div>
                            </div>
                            <div class="col-md-6">
                                <div class="form-group">
                                    {{ Form::label('description', 'Deskripsi') }}
                                    {{ Form::text('description', '', ['class'=>'form-control', 'placeholder'=>'Masukkan Deskripsi Keuangan']) }}      
                                </div>
                            </div>
                        </div>
                        <div class="row">
                            <div class="col-md-6">
                                <div class="form-group">
                                    {{ Form::label('income', 'Pemasukan') }}
                                    {{ Form::text('income', '', ['class'=>'form-control', 'placeholder'=>'Masukkan Pemasukan']) }}        
                                </div>
                            </div>
                            <div class="col-md-6">
                                <div class="form-group">
                                    {{ Form::label('file', 'Laporan Keuangan') }}
                                    {{ Form::file('file', ['class'=>'form-control']) }}        
                                </div>
                            </div>
                        </div>
                    </div>
                    <div class="card-footer">
                        <a href="{{ URL::to('admin/financials/index') }}" class="btn btn-outline-info">Kembali</a>
                        {{ Form::submit('Proses', ['class' => 'btn btn-primary pull-right']) }}
                    </div>
                </div>
            <!-- </form> -->
            {{ Form::close() }}
        </div>
    </div>

    <script>
    $(document).ready(function() {            
    $('#date').datepicker({                      
        format: 'dd-mm-yyyy',
        autoclose: true,
        }); 
    });
    </script> 
@endsection

这是我的控制器

FinancialController.php

public function incomestore(Request $request)
    {
        //
        $rules =[
            'date'=>'required',
            'description'=>'required',
            'debit'=>'required',
            'file'=>'required|mimes:pdf'
        ];
 
        $pesan=[
            'date.required'=>'Judul Kegiatan Tidak Boleh Kosong',
            'description.required'=>'Tanggal Kegiatan Tidak Boleh Kosong',
            'debit.required'=>'Jenis Kegiatan Tidak Boleh Kosong',
            'file.required'=>'Laporan Tidak Boleh Kosong',
        ];
 
        $validator=Validator::make(Input::all(),$rules,$pesan);
 
        //jika data ada yang kosong
        if ($validator->fails()) {
 
            //refresh halaman
            return Redirect::to('admin/financials/index')
            ->withErrors($validator);
 
        }else{

            $file=$request->file('file')->getClientOriginalName();
             
            $financials=new Financials;
 
            $financials->date=Input::get('date');
            $financials->description=Input::get('description');
            $financials->debit=Input::get('debit');
            $financials->kredit=Input::get('kredit');
            $financials->file=$file;
            $financials->save();
 
            Session::flash('message','Data Berhasil Ditambah');
 
            return Redirect::to('admin/financials/index');
        }
    }

这是我的路线

web.php

Route::get('/admin/financials/index', [App\Http\Controllers\FinancialsController::class, 'index']);
Route::get('/admin/financials/createincome', [App\Http\Controllers\FinancialsController::class, 'createincome']);
Route::post('/incomestore/financials', [App\Http\Controllers\FinancialsController::class, 'incomestore'])->name('financials.incomestore');

【问题讨论】:

  • 看起来您正在尝试构建一个 Financials 实例,然后使用 ->save() 将其写入数据库。您确定正在执行该代码吗?如果你改变会发生什么: $financials->file=$file; $财务->保存();到 $financials->file=$file; dd($财务);您是否看到了您希望看到的数据?
  • 检查请求正文dd($request-&gt;all())中的所有数据

标签: php laravel


【解决方案1】:

检查模型Financials 是否在protected $fillable 数组中有列(date / description 等)。

错过这些是一个常见的错误,并且很难调试,因为它会默默地忽略这些列。

【讨论】:

    猜你喜欢
    • 2020-05-12
    • 1970-01-01
    • 1970-01-01
    • 2020-07-07
    • 2017-11-21
    • 1970-01-01
    • 2013-03-02
    • 2019-10-06
    • 2011-09-08
    相关资源
    最近更新 更多