9阅网

您现在的位置是:首页 > 知识 > 正文

知识

php - SQLSTATE[HY000]。一般错误。1364 字段banner_photo没有默认值。

admin2022-11-07知识20

N.B: 我使用laravel 7.x。,我想在数据库中插入照片,但错误提示:一般错误。1364字段'banner_photo'没有默认值。

这是我的 刀片 档案

@extends('admin.layout.master')

@section('content')
<div>
      <!-- partial:partials/_navbar.html -->
      @include('admin.layout.nav')

      <!-- partial -->
    <div>
        <!-- partial:partials/_sidebar.html -->
        @include('admin.layout.sidebar')
        <!-- partial -->
        <div>
          <div>
            <!-- Page Title Header Starts-->
            <div>
              <div>
                <div>
                  <h4>Dashboard</h4>

                </div>
              </div>

            </div>
            <!-- Page Title Header Ends-->


            <div>
              <div>
                <div>
                  <div>
                    <div>
                      <div>
                        <div>
                          <h4>Banner</h4>
                          <a href="#"><small>Show All</small></a>
                        </div>
                        <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Est quod cupiditate esse fuga</p>
                        <div>
                          <table>
                            <thead>
                              <tr>
                                <th>ID</th>
                                <th>H4 Title</th>
                                <th>H2 Title</th>
                                <th>Paragraph</th>
                                <th>Image</th>
                                <th>Edit</th>
                                <th>Delete</th>
                              </tr>
                            </thead>
                            <tbody>
                              @foreach($banners as $row)
                              <tr>
                                <td>{{$row->id}}</td>
                                <td>{{$row->h4_title}}</td>
                                <td>{{$row->h2_title}}</td>
                                <td>{{$row->banner_paragraph}}</td>
                                <td>{{$row->banner_image}}</td>
                                <td><button type="submit"><i></i>EDIT</button></td>
                                <td><button type="submit"><i></i>DELETE</button></td>
                              </tr>
                              @endforeach
                            </tbody>
                          </table>
                        </div>
                      </div>
                    </div>
                  </div>


                </div>
              </div>

            </div>

          </div>
          <!-- content-wrapper ends -->
          <!-- partial:partials/_footer.html -->
          @include('admin.layout.footer')
          <!-- partial -->
        </div>
        <!-- main-panel ends -->
    </div>
      <!-- page-body-wrapper ends -->
</div>
<!-- container-scroller -->

@endsection

这里是管理面板 bannercustomize.blade.php

@extends('admin.layout.master')

@section('content')
<div>
@include('admin.layout.nav')
    <div>
    @include('admin.layout.sidebar')    
        <div>
            <div>
                <div>
                    <div>
                        <div>
                            <div>
                                <div>
                                    <div>
                                        <h4>Banner Customize</h4>

                                        @if(count($errors) >0)
                                        <div>
                                            <button type="button" data-dismiss="alert" aria-label="Close">
                                             <span aria-hidden="true">&times;</span>
                                            </button>
                                            <ul>
                                                @foreach($errors->all() as $error)
                                                    <li>{{$error}}</li>
                                                @endforeach
                                            </ul>
                                        </div>
                                        @endif

                                        @if(\Session::has('success'))
                                        <div>
                                            <button type="button" data-dismiss="alert" aria-label="Close">
                                             <span aria-hidden="true">&times;</span>
                                            </button>
                                            <p>{{\Session::get('success')}}</p>
                                        </div>
                                        @endif

                                        <form method="post" action="{{route('store.banner')}}" enctype="multipart/form-data">
                                            @csrf
                                            <div>
                                                <label for="exampleInputEmail1">H4 Title</label>
                                                <input type="text" id="exampleInputEmail1" placeholder="Enter H4 Title" name="h4_title">
                                            </div>

                                            <div>
                                                <label for="exampleInputEmail1">H2 Title</label>
                                                <input type="text" id="exampleInputEmail1" placeholder="Enter H2 Title" name="h2_title">
                                            </div>

                                            <div>
                                                <label for="exampleInputEmail1">Paragraph</label>
                                                <input type="text" id="exampleInputEmail1" placeholder="Enter Paragraph" name="banner_paragraph">
                                            </div>

                                            <div>
                                                <input type="file" id="exampleInputEmail1" name="banner_photo">
                                            </div>
                                            <button type="submit">Submit</button>
                                            <button type="submit">Cancle</button>
                                        </form>

                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
            @include('admin.layout.footer')
        </div>
    </div>

</div>



@endsection

这是我的路线 web.php 档案

<?php

use Illuminate\Support\Facades\Route;

/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/

Route::get('/', function () {
    return view('index');
});

Route::get('/contact-us', function () {
    return view('contactus');
});

Route::get('/tours', function () {
    return view('tours');
});

// Admin panel Pages Routes

Route::get('/admin', function () {
    return view('admin/index');
});

Route::get('/admin/bannercustomize', function () {
    return view('admin/layout/bannercustomize');
});


// Controller routes

// Route::resource('banners', '[email protected]');

// // Route::get('/', '[email protected]');

Route::post('store/banner','[email protected]')->name('store.banner');

Route::get('/admin','[email protected]')->name('admin.index');

这是我的控制器 BannerController.php 档案

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Banner;

class BannerController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        // $banners = Banner::all()->toArrary();
        // return view('admin.index', ['banners' =>$banners]));

        $banners = Banner::all();
        return view('admin.index',compact('banners'));
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        return view('admin.layout.bannercustomize');
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        $this->validate($request, [
            'h4_title' => 'required',
            'h2_title' => 'required',
            'banner_paragraph' => 'required',


        ]);

        $banner = new Banner([
            'h4_title' => $request->get('h4_title'),
            'h2_title' => $request->get('h2_title'),
            'banner_paragraph' => $request->get('banner_paragraph'),

        ]);

        if ($request->has('banner_image')) {

            $image = $request->file('banner_image');

            $name = hexdec(uniqid()).'_'.time();

            $folder = '/image/banner_image/';

            $filePath = $folder . $name. '.' . $image->getClientOriginalExtension();

            $this->uploadOne($image, $folder, 'public', $name);

            $banner->banner_image = $filePath;
        }
        $banner->save();

        return redirect()->back()->with('success', 'Data Added');
    }

    /**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function show($id)
    {
        //
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function edit($id)
    {
        //
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, $id)
    {
        //
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function destroy($id)
    {
        //
    }
}

请帮我找到这个错误&这个错误的解决方案。



【回答】:

您必须更改

banner_image

banner_photo

变化

if ($request->has('banner_photo')) {

   $image = $request->file('banner_photo');
   ....
}