当我使用隐藏的输入字段提交表单时,我试图获取产品的Id
,但遇到错误Trying to get property of non-object
。我该如何解决这个问题?
代码
控制器
class productController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index(Request $request)
{
$userId = $request->user()->id;
$products = product::where('admin', $userId)->get();
return view('admin.product.index',compact('products'));
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function admin()
{
$products=product::all();
return view('admin.product.index',compact('products'));
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
$formInput=$request->all();
$image=array();
if($files=$request->file('image')){
foreach($files as $file){
$name=$file->getClientOriginalName();
$file->move('images',$name);
$image[]=$name;
}
// dd($formInput);
}
//dd($formInput);
Image::create(array_merge($formInput,[
// $id=$request->input('id'),
// $product=Product::find($id),
$request->input('product_id'),
]));
return redirect()->back();
}
刀片
<form action="{{route('product.store')}}" method="post"
role="form"
enctype="multipart/form-data">
{{csrf_field()}}
@foreach ( $products as $product )
<input type="hidden" name="product_id" value="{{ $product->id
}}" />
@endforeach
</form>
将提供任何帮助。
答案 0 :(得分:0)
好像您有1个以上的product_id
隐藏字段。
如果您打算提交超过1个,请在方括号中添加product_id[]
。
请求对象应检索相同的名称。您正在控制器中使用id
,但正在提交product_id
命名字段。
使用$request->input('product_id')