Laravel控制器向视图传单个值报错:Undefined variable $randomNumber
Laravel控制器传值到视图报错:Undefined variable $randomNumber 解决方法
你当前的问题出在->with()方法的使用格式上:with()传递单个变量时,必须传入「变量名(字符串)」和「变量值」的键值对,而你直接传了变量值,导致视图无法识别对应的变量名,所以报错Undefined variable $randomNumber。
下面给几种可行的修正方案:
方案一:修正with()的参数格式
把with()的参数改成键值对形式,同时注意分页偏移量也要指定变量名:
public function create() { $randomNumber = random_int(100000, 999999); $clients = Client::all(); $products = Product::all(); $offset = (request()->input('page', 1) - 1) * 5; return view('orders/create',compact('clients','products')) ->with('randomNumber', $randomNumber) ->with('offset', $offset); }
方案二:用compact统一传递所有变量
直接将$randomNumber和分页偏移量加入compact的参数列表,写法更简洁:
public function create() { $randomNumber = random_int(100000, 999999); $clients = Client::all(); $products = Product::all(); $offset = (request()->input('page', 1) - 1) * 5; return view('orders/create',compact('clients','products','randomNumber','offset')); }
方案三:用数组形式传递变量
把所有需要传递的变量放进数组,直接传给view方法:
public function create() { $randomNumber = random_int(100000, 999999); $clients = Client::all(); $products = Product::all(); $offset = (request()->input('page', 1) - 1) * 5; return view('orders/create', [ 'clients' => $clients, 'products' => $products, 'randomNumber' => $randomNumber, 'offset' => $offset ]); }
你的视图代码是正确的,只要控制器按上述任一方法修正传值逻辑,{{ $randomNumber }}就能正常获取到生成的随机数。
内容的提问来源于stack exchange,提问作者laraCoder
相关产品推荐
相关产品推荐

