Laravel Can';t提交表格并显示错误消息“;试图获取非对象的属性“;

Laravel Can';t提交表格并显示错误消息“;试图获取非对象的属性“;,laravel,Laravel,当我访问表单并单击submit按钮时,会收到一条错误消息 正在尝试获取非对象的属性“nama_plg” 代码详细信息 <tr> <td><b>Nama</b> </td> <td>: </td> <td>{{ $pelanggan->nama_plg }}</td> <input type="hidden" name=&quo

当我访问表单并单击submit按钮时,会收到一条错误消息

正在尝试获取非对象的属性“nama_plg”

代码详细信息

<tr>
    <td><b>Nama</b> </td>
    <td>: </td>
    <td>{{ $pelanggan->nama_plg }}</td>
    <input type="hidden" name="pelanggan_id" value="{{ $pelanggan->pelanggan_id }}" required>
</tr>
路线


如何解决此问题?

首先,您没有在请求主体内验证
pelanggan\u id
。这可能是导致
Pelanggan::find($request->Pelanggan\u id)
可以返回null的原因。在这种情况下,
$pelanggan
为空,计算
$pelanggan->name\u plg
将抛出与您现在得到的完全相同的异常

你问题的解决方案

  • 验证请求正文中的
    pelanggan\u id
    字段,以便控制器将返回
    ValidationException
    ,并在
    pelanggan\u id
    字段无效时停止执行
  • 修复
    Pelanggan::find($request->Pelanggan\u id)
    Pelanggan::findOrFail($request->Pelanggan\u id)
    。在与上述相同的情况下,它将抛出
    ModelNotFoundException

  • 在您的函数中返回$pelangaan并查看类Pelanggan扩展模型{use HasFactory;protected$fillable=['nik'、'nama_plg'、'ttl_plg'、'nmrhp_plg'、'alamat_plg'、'jenkel_plg']中的内容;protected$primaryKey='Pelanggan_id'}哦,不!我不是这个意思!阅读下面的答案,它会帮助你的
    public function calculate(Request $request)
        {
            $validate = $request->validate([
                'kode_bkg' => 'required|unique:pemesanans',
                'tgl_psn' => 'required',
                'durasi' => 'required',
            ]);
    
            $data = $request->toArray();
            $pelanggan = Pelanggan::find($request->pelanggan_id);    
            $title = 'Detail Pemesanan';
            $menu = '5';
            
            return view('pemesanan.details', compact('tgl_balik', 'data', 'total_harga', 'bus', 'dp', 'title', 'menu', 'pelanggan'));
        }
    
    Route::post('pemesanan/details', ['as' => 'pemesanan.calculate', 'uses' => 'PemesananController@calculate'])->middleware('auth');