控制器
public function rooms_detail(Request $request)
{
$data['room_id'] = $request->id;
$data['result'] = Rooms::find($request->id);
echo $data['result'];
return view('rooms.rooms_detail', $data);
}
view:rooms / rooms_detail
@foreach($result as $row)
<div class="hero-text">{{ $row->name }}</div>
@endforeach
在这段代码中,我有一个控制器功能,可以在Rooms模型中运行查询,该查询可以正常工作,并且我的数据看起来像{"id":16,"user_id":10088,"name":"5 \u2b50 RESORT RETREAT W\/HEATED POOL SPRAWLING GROUNDS"}
。但是我无法在我的视图文件中获取此数据。那么,我该怎么办呢?请帮助我。
谢谢
答案 0 :(得分:1)
在Laravel文档中,您还可以使用find或first检索单个记录:https://laravel.com/docs/5.8/eloquent#retrieving-single-models
所以
$data['result'] = Rooms::find($request->id);
返回单个模型而不是模型集合。 您应该在view:rooms / rooms_detail
中更改代码//@foreach($result as $row) => remove foreach
<div class="hero-text">{{ $result->name }}</div>
//@endforeach
答案 1 :(得分:0)
我认为您不需要循环播放。因为您正在使用find
函数。只需直接在视图上调用
<div class="hero-text">{{ $result->name }}</div>
find
函数会在找到内容时为您提供Model或返回null
或者如果您想更改您的雄辩查询。
$data['result'] = Rooms::where('id', $request->id)->get();
答案 2 :(得分:0)
我会在您的控制器中返回这样的数据:
return response()->view('rooms.rooms_detail', [
$result => $data['result'],
$roomID => $data['room_id']
]);
这是返回响应https://laravel.com/docs/5.8/responses
的推荐正确方法然后在您的刀片中
<div class="hero-text">{{ $result->name }}</div>
答案 3 :(得分:0)
您不需要将集合转换为数组,因为您使用的是eloquents find
方法,该方法将返回collection
而不是array
您可以简单地使用以下代码
public function rooms_detail(Request $request)
{
$room_id = $request->id;
$data = Rooms::find($request->id);
echo $data['result'];
return view('rooms.rooms_detail', $data);
}
然后在您看来
<div class="hero-text">{{ $data->name }}</div>
答案 4 :(得分:0)
public function rooms_detail(Request $request)
{
$room = Rooms::find($request->id);
return view('rooms.rooms_detail')->with('room',$room);
}
在“查看数据”页面
<div class="hero-text">{{ $room->name }}</div>
您仅获取一个数据,因此不需要循环