我对Laravel很新,对不起,如果这是一个简单的问题。
在 panitia 控制器中,如果我使用get()
,我会得到:
Trying to get property of non-object
如果我使用firstOrFail
,我会得到:
Call to undefined method Illuminate\Database\Query\Builder::firstOrFail()
如果我使用first()
,它会起作用,但它只显示第一条记录
问题是这个代码没问题,直到我需要连接表。
PanitiaController
public function lihat($username)
{
$panitia=DB::table('panitia')
->join('detail', 'panitia.id_panitia', '=', 'detail.id_panitia')
->where('username', '=', $username)
->first();
return view('admin.lihat',compact('panitia'));
}
panitia view
@foreach ($panitias as $panitia)
<tr>
<td>{{ $panitia->id_panitia }}</td>
<td>{{ $panitia->username }}</td>
<td>{{ $panitia->nama }}</td>
<td><a href="{{url('/admin/panitia/lihat',$panitia->username)}}" class="btn btn-primary">Detail</a></td>
<td><a href="{{url('/admin/panitia/edit',$panitia->username)}}" class="btn btn-warning">Edit</a></td>
<td>
</td>
</tr>
@endforeach
lihat view
<div class="form-group">
<label for="isbn" class="col-sm-2 control-label">Id Panitia</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="id_panitia" placeholder={{ $panitia->id_panitia}} readonly>
</div>
</div>
<div class="form-group">
<label for="title" class="col-sm-2 control-label">Nama</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="username" placeholder={{$panitia->username}} readonly>
</div>
</div>
<div class="form-group">
<label for="title" class="col-sm-2 control-label">Nama</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="nama" placeholder={{$panitia->nama}} readonly>
</div>
</div>
解决
只是形成问题t_t 谢谢大家帮助我:)。
答案 0 :(得分:0)
我认为你需要谈谈文档。特别是关于雄辩和模特。那更容易,那就是你做的...... https://laravel.com/docs/5.2/eloquent
答案 1 :(得分:0)
$app->get('/', function($request, $response, $args) {
return $response->withRedirect('/projetcs');
});
和first()
将检索一条记录 - 如果它存在则找到它的第一条记录。
firstOrFail()
也仅适用于Eloquent。您正在使用查询构建器,因此该方法不存在。
最后,firstOrFail()
正是您要找的。它“获取”所有匹配的记录,但查询构建器的get()
方法返回一组记录。
您的观点并未反映出这一点。您的视图假定只有一条记录,因此您收到get()
错误消息。如果您获得多条记录但是您尝试执行此操作:Trying to get property of non-object
,代码应该如何知道应该获取哪条记录的ID?它不能,因为它试图访问数组的id,这是没有意义的。您需要遍历并将$panitia->id_panitia
视图更改为以下内容:
注意foreach:
lihat
另外,我在双花括号周围添加了引号。