Php Laravel-表单从数据库中选择类别

Php Laravel-表单从数据库中选择类别,php,laravel,select,Php,Laravel,Select,我有数据库表“事件”和“类别”。 我想使用表单中的选择下拉列表为事件分配一个类别。我也希望能够编辑和更新它。我当前给我的代码有以下错误- SQLSTATE[23000]:完整性约束冲突:1048列 “类别id”不能为空 addEvent.blade.php <div class="form-group"> <div class="form-group"> <div class="form-group"> {!! Form

我有数据库表“事件”和“类别”。 我想使用表单中的选择下拉列表为事件分配一个类别。我也希望能够编辑和更新它。我当前给我的代码有以下错误-


SQLSTATE[23000]:完整性约束冲突:1048列 “类别id”不能为空

addEvent.blade.php

  <div class="form-group">
    <div class="form-group">
      <div class="form-group">
        {!! Form::Label('category_id', 'Category:') !!}
        <select> class="form-control" name="category_id">
          @foreach($categories as $category)
            <option value='{{ $category->id}}'> {{ $category->category}}</option>
          @endforeach
         </select>
      </div>
    </div>
  </div>

{!!Form::Label('category_id','category:')
class=“form control”name=“category\u id”>
@foreach($categories作为$category)
{{$category->category}
@endforeach
eventController

public function addEvent(Request $request)
{
  $this->validate($request, [
    'event_name'  => 'required',
    'start_date'  => 'required',
    'end_date'    => 'required',
    'time'        => 'required',
    'trip_id'     => 'required',

  ]);

    $start_date = Carbon::parse($request['start_date'])->format('Y-m-d');
    $end_date = Carbon::parse($request['end_date'])->format('Y-m-d');

    $tripCheck = Trip::where('id', $request['trip_id'])
    ->whereDate('startdate', '<=', $start_date)
    ->whereDate('enddate', '>=', $start_date)

    ->whereDate('startdate', '<=', $end_date)
    ->whereDate('enddate', '>=', $end_date)
    ->first();

    if ($tripCheck) {

      $events = new Events;
      $trips = Trip::all();
      $categories = Categories::pluck('category','id');
      $events->category_id = $request['category_id'];
      $events->colour =  $request['colour'];
      $events->event_name = $request['event_name'];
      $events->start_date = $request['start_date'];
      $events->end_date = $request['end_date'];
      $events->time = $request['time'];
      $events->address = $request['address'];
      $events->notes = $request['notes'];
      $events->trip_id = $request['trip_id'];
      $events->save();

return redirect('trips')->with('success', 'The new event has been added to your trip')->with('trips', $trips)->withCategories($categories);
} else
  {
  return redirect('trips')->withErrors(['The dates you added are not within Trip start and end date.']);
   }


public function display($id)
{
  $categories = Categories::all();

  return view('/addEvent')->with('trip_id', $id)->withCategories($categories);
}
public function addEvent(请求$Request)
{
$this->validate$请求[
'事件名称'=>'必需',
“开始日期”=>“必需”,
“结束日期”=>“必需”,
“时间”=>“必需”,
“trip_id”=>“必需”,
]);
$start_date=Carbon::parse($request['start_date'])->格式('Y-m-d');
$end_date=Carbon::parse($request['end_date'])->格式('Y-m-d');
$tripCheck=Trip::where('id',$request['Trip\u id'])
->whereDate('startdate','=',$start\u date)
->whereDate('startdate','=',$end_date)
->第一个();
如果($tripCheck){
$events=新事件;
$trips=Trip::all();
$categories=categories::pull('categories','id');
$events->category_id=$request['category_id'];
$events->color=$request['color'];
$events->event_name=$request['event_name'];
$events->start_date=$request['start_date'];
$events->end_date=$request['end_date'];
$events->time=$request['time'];
$events->address=$request['address'];
$events->notes=$request['notes'];
$events->trip_id=$request['trip_id'];
$events->save();
return redirect('trips')->with('success','new event已添加到您的行程中')->with('trips',$trips)->with categories($categories);
}否则
{
return redirect('trips')->withErrors(['您添加的日期不在行程开始和结束日期之内');
}
公共功能显示($id)
{
$categories=categories::all();
返回视图('/addEvent')->带('trip_id',$id)->带类别($categories);
}
editEvent

<div class="form-group"> Category:
      <input type="select" name="category" class="form-control" value="{{$events->category}}" placeholder="Category" />
    </div>
类别:

您太早关闭了
。请更改

class=“表单控制”name=“category\u id”>


要使它有一个
名称

关闭问题:为什么在控制器上使用
$trips=Trip::all();
?像这样更改所有代码,从
$events->category\u id=$request['category\u id']
$events->category\u id=$request->category\u id;
SQLSTATE[23000]:完整性约束冲突:1048列“category_id”不能为空。请通过以下方式添加请求:
dd($request->all());
array:9[▼ “token”=>“C8tVGYt6b7ugGLb0JaQ2TBhq5Wc1QZSgziymA4FR”“trip\u id”=>“17”“color”=>“000000”“event\u name”=>“test”“start\u date”=>“2020-03-03”“end\u date”=>“2020-03-03”“time”=>“12:30”“address”=>“test”“notes”=>“test”“notes”=>空]