php - SQLSTATE[HY000]。一般错误。1364 字段banner_photo没有默认值。
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">×</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">×</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');
....
}