【问题标题】:How to pass variables into different functions inside a php controller如何将变量传递给 php 控制器中的不同函数
【发布时间】:2023-01-31 21:08:07
【问题描述】:

我正在尝试创建一个表单选择字段,显示所有具有指定类型的学校。代码的 laravel 功能有效。因为我在一页上有这个,所以一切正常。但我被要求将它们移到两个单独的页面上。我的问题是如何将我的 $type 变量从我的 storeType 函数正确地获取到我的学校选择函数中?见代码:

public function schoolSelection(School $school,$type)
{
    $schools=$school->where('type','=',$type)->get();
    return view('auth.schoolSelection',compact('schools'));
}

public function storeType(Request $request, School $school)
{
    $data=$request->all();
    $type=$data['schoolType'];

    return redirect()->route('schoolSelection',compact('type'));
}

【问题讨论】:

  • 我目前尝试在我的函数中使用 $type 的方法没有用

标签: php laravel variables controller


【解决方案1】:

您可以通过将 $type 变量包含在 redirect()->route() 方法的第二个参数中将其传递给路由“schoolSelection”。您可以使用 compact() 函数以紧凑数组格式传递变量。例子:

return redirect()->route('schoolSelection', compact('type'));

在 schoolSelection 函数中,您可以通过在函数签名中将其声明为参数来从紧凑数组接收 $type 变量。例子:

public function storeType(Request $request, School $school)
{
    $data=$request->all();
    $type=$data['schoolType'];

    return redirect()->route('schoolSelection', ['type' => $type]);
}

在 schoolSelection 函数中,您可以接收传递的变量作为参数:

public function schoolSelection(School $school, $type)
{
    $schools=$school->where('type','=',$type)->get();
    return view('auth.schoolSelection',compact('schools'));
}

【讨论】:

  • 如果我删除函数头部的 $type ,我会得到错误 Undefined variable $type
  • 现在检查我编辑的答案
  • 是不是和我原来的帖子一样?我收到错误 arguments to function .....
猜你喜欢
  • 1970-01-01
  • 2015-07-04
  • 2014-05-14
  • 1970-01-01
  • 2019-09-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-09
相关资源
最近更新 更多