在我的laravel项目中,我有一个编辑表单,我想根据数据库字段设置选定的选项。我该怎么办?
在我的视图中,我无法在php部分中使用$ info变量。我认为这是因为控制器部分。
这是我的控制人:
<?php
public function Edit()
{
$idNew = $_GET['id'];
$info = DB::table('test')->select('id','name','status')->where('id','=', $idNew)->get();
$returnHTML = view('layouts.edit',['info'=> $info])->render();
return response()->json([
'html'=> $returnHTML
]);
}
?>
我的观点:
<html>
<option value="enabled" <?php if($info['status'] == 'enabled'){ echo ' selected="selected"'; } ?>>enabled</option>
</html>
答案 0 :(得分:2)
您缺少某些部分。
$_GET
数组。使用请求对象response()->json()
函数,因为它用于ajax调用。get()
函数。使用first()
函数。您的控制者应为:
use Illuminate\Http\Request;
public function Edit(Request $request)
{
$idNew = $request->input('id', 'default_value');
$info = DB::table('test')->select('id','name','status')->where('id','=', $idNew)->first();
return view('layouts.edit', ['info'=> $info]);
}
您的刀片文件应为:
<html>
<option value="enabled" {!! $info['status'] == 'enabled' ? "selected='selected'" : "" !!}>enabled</option>
</html>
答案 1 :(得分:0)
使用数据数组并将其与视图一起传递
public function Edit()
{
$data=array();
$idNew = $_GET['id'];
$data['info'] = DB::table('test')->select('id','name','status')->where('id','=', $idNew)->get();
return view('layouts.edit')->with($data);
}