我正在创建管理面板。当用户更新其配置文件时,使用路由名userid
通过更新控制器方法读取其update
。更新控制器方法返回视图updatedata
以及数组。我正在使用ORM DATABASE
控制器
public function update($id)
{
$records = Register::find($id);
return view('updatedata',['records' => $records]);
}
模板
@extends('layout/master')
@section('content')
<h1 align="center">
@foreach($records as $records)
{!! Form::open(['route'=>'f.update']) !!}
<table border="2" align="center">
<tr>
<td>{!! Form::label('name','Name') !!}</td>
<td>{!! Form::text('name',$records->name) !!}</td>
</tr>
<tr>
<td>{!!Form::label('phone','Phone')!!}</td>
<td>{!! Form::text('phone',$records->phone) !!}</td>
</tr>
<tr>
<td>{!! Form::label('email','E-mail') !!}</td>
<td>{!! Form::email('email',$records->name) !!}</td>
</tr>
<tr>
<td>{!! Form::label('course','Course') !!}</td>
<td>{!! Form::select('course',['MCA'=>'MCA','BTECH'=>'BTECH','BCA'=>'BCA'],$records->course) !!}</td>
</tr>
<tr>
<td>{!! Form::label('address','Address') !!}</td>
<td>{!! Form::textarea('address', $records->address, ['size' => '30x3']) !!}</td>
</tr>
<tr>
<td colspan="2">
{!! Form::hidden('id',$records->id) !!}
</td>
</tr>
<tr>
<td colspan="2" align="center">{!! Form::submit() !!}</td>
</tr>
</table>
{!! Form::close() !!}
@endforeach
</h1>
@endsection
错误
2/2
4de1c6468785010f583b37a90fa7bed16c4e92a7.php第10行中的ErrorException:
试图获取非对象的属性(查看:C:\ xampp \ htdocs \ laravel \ resources \ views \ updatedata.blade.php)
请帮忙。
答案 0 :(得分:2)
当您使用find
Eloquent方法时,它会返回one
模型。
$record = Register::find($id);
如果您需要多个型号,则需要使用get
方法。例如:
$records = Register::whereIn('id', [1, 2, 3])->get();
在您看来,您尝试使用foreach
循环来迭代模型集合。但是你只有一个。
// controller
public function update($id)
{
$record = Register::findOrFail($id);
return view('updatedata', compact('record'));
}
// view
@extends('layout/master')
@section('content')
{!! Form::open(['route' => ['f.update', $record->id]]) !!}
<table border="2" align="center">
<tr>
<td>{!! Form::label('name','Name') !!}</td>
<td>{!! Form::text('name', $record->name) !!}</td>
</tr>
<tr>
<td>{!!Form::label('phone','Phone')!!}</td>
<td>{!! Form::text('phone', $record->phone) !!}</td>
</tr>
<tr>
<td>{!! Form::label('email','E-mail') !!}</td>
<td>{!! Form::email('email', $record->name) !!}</td>
</tr>
<tr>
<td>{!! Form::label('course','Course') !!}</td>
<td>{!! Form::select('course', ['MCA'=>'MCA','BTECH'=>'BTECH','BCA'=>'BCA'], $record->course) !!}</td>
</tr>
<tr>
<td>{!! Form::label('address','Address') !!}</td>
<td>{!! Form::textarea('address', $record->address, ['size' => '30x3']) !!}</td>
</tr>
<tr>
<td colspan="2">
{!! Form::hidden('id', $record->id) !!}
</td>
</tr>
<tr>
<td colspan="2" align="center">{!! Form::submit() !!}</td>
</tr>
</table>
{!! Form::close() !!}
@endsection
最后,将<form>
包含在<h1>
元素中并不是一个好习惯。