【问题标题】:How to fix "Attempt to read property "id" on null"如何修复“尝试在 null 上读取属性“id””
【发布时间】:2022-06-10 23:23:59
【问题描述】:

AppointmentController.php


    <?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Models\Appointment;
use App\Models\Time;

class AppointmentController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        //
    }

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

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
     public function store(Request $request)
     {
         $appointment = Appointment::create([
             'user_id'=> auth()->user()->id,
             'date' => $request->date
         ]);
         foreach($request->time as $time){
             Time::create([
                 'appointment_id'=> $appointment->id,
                 'time'=> $time
             ]);
         }
         return redirect()->back()->with('message','Appointment created for'. $request->date);

     }

    /**
     * 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)
    {
        //
    }
}

Appointment.php 模型

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Appointment extends Model
{
    use HasFactory;
    protected $guarded = [];
}

create.blade.php

@extends('admin.layouts.master')

@section('content')
<div class="page-header">
    <div class="row align-items-end">
        <div class="col-lg-8">
            <div class="page-header-title">
                <i class="ik ik-edit bg-blue"></i>
                <div class="d-inline">
                    <h5>Vets</h5>
                    <span>Select your desired appointment schedule</span>
                </div>
            </div>
        </div>
        <div class="col-lg-4">
            <nav class="breadcrumb-container" aria-label="breadcrumb">
                <ol class="breadcrumb">
                    <li class="breadcrumb-item">
                        <a href="../index.html"><i class="ik ik-home"></i></a>
                    </li>
                    <li class="breadcrumb-item"><a href="#">Vet</a></li>
                    <li class="breadcrumb-item active" aria-current="page">Appointment</li>
                </ol>
            </nav>
        </div>
    </div>
</div>

<div class="container">
  @if(Session::has('message'))
  <div class="alert alert-success">
    {{Session::get('message')}}
  </div>
  @endif
  <form action="{{route('appointment.store')}}" method="POST">
    @csrf

  <div class="card">
    <div class="card-header">
      Choose Date:
    </div>
    <div class="card-body">
      <input type="text" class="form-control datetimepicker-input" id="datepicker" data-toggle="datetimepicker" data-target="#datepicker" name="date">
    </div>
  </div>

  <div class="card">
    <div class="card-header">
      Choose AM Time:
    </div>
    <div class="card-body">
      <table class="table table-striped">

          </thead>
          <tbody>
            <tr>
              <td><input type="checkbox" name="time[]" value="8am">&nbsp&nbsp8:00 AM</td>
              <td><input type="checkbox" name="time[]" value="8.30am">&nbsp&nbsp8:30 AM</td>
            </tr>
            <tr>
              <td><input type="checkbox" name="time[]" value="9am">&nbsp&nbsp9:00 AM</td>
              <td><input type="checkbox" name="time[]" value="9.30am">&nbsp&nbsp9:30 AM</td>
            </tr>
            <tr>
              <td><input type="checkbox" name="time[]" value="10am">&nbsp&nbsp10:00 AM</td>
              <td><input type="checkbox" name="time[]" value="10.30am">&nbsp&nbsp10:30 AM</td>
            </tr>
            <tr>
              <td><input type="checkbox" name="time[]" value="11am">&nbsp&nbsp11:00 AM</td>
              <td><input type="checkbox" name="time[]" value="11.30am">&nbsp&nbsp11:30 AM</td>
            </tr>

          </tbody>
        </table>
    </div>
  </div>

  <div class="card">
    <div class="card-header">
      Choose PM Time:
    </div>
    <div class="card-body">
      <table class="table table-striped">

          </thead>
          <tbody>
            <tr>
              <td><input type="checkbox" name="time[]" value="12pm">&nbsp&nbsp12:00 PM</td>
              <td><input type="checkbox" name="time[]" value="12.30pm">&nbsp&nbsp12:30 PM</td>
            </tr>
            <tr>
              <td><input type="checkbox" name="time[]" value="1pm">&nbsp&nbsp1:00 PM</td>
              <td><input type="checkbox" name="time[]" value="1.30pm">&nbsp&nbsp1:30 PM</td>
            </tr>
            <tr>
              <td><input type="checkbox" name="time[]" value="2pm">&nbsp&nbsp2:00 PM</td>
              <td><input type="checkbox" name="time[]" value="2.30pm">&nbsp&nbsp2:30 PM</td>
            </tr>
            <tr>
              <td><input type="checkbox" name="time[]" value="3pm">&nbsp&nbsp3:00 PM</td>
              <td><input type="checkbox" name="time[]" value="3.30pm">&nbsp&nbsp3:30 PM</td>
            </tr>
            <tr>
              <td><input type="checkbox" name="time[]" value="4pm">&nbsp&nbsp4:00 PM</td>
              <td><input type="checkbox" name="time[]" value="4.30pm">&nbsp&nbsp4:30 PM</td>
            </tr>

          </tbody>
        </table>
    </div>
  </div>
  <div class="card">
    <div class="card-body">
      <button type="submit" class="btn btn-primary">Submit</button>
    </div>
  </div>
  </form>
</div>



@endsection

谁能指出我在哪里犯了错误?我只是尝试将数据添加到约会和时间表中。它一直在 AppointmentController.php 中的 ''user_id'=> auth()->user()->id,' 行突出显示错误

我已经尝试了几件事,但它不起作用。如果您需要更多代码,请告诉我。

【问题讨论】:

  • 你能添加整个错误消息和 corospending 代码行吗?
  • auth()-&gt;user()-&gt;id 仅在您通过身份验证后才有效。 auth()-&gt;user()返回登录的User,如果是nobody,则为null,null-&gt;id无效。

标签: php html laravel-8


猜你喜欢
  • 2021-06-25
  • 2022-06-10
  • 2019-05-22
  • 2021-09-14
  • 2021-10-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-06-11
相关资源
最近更新 更多