当前位置: 首页 > 知识库问答 >
问题:

Laravel:填充DB中的下拉列表

符渊
2023-03-14

我是Laravel的新手。当我试图从表中填充下拉列表时,我有一个“找不到变量”的问题:表名称是猫(类别),模型名称是“猫”,看起来像这样:

class Cat extends Model
{
     public function project() {

     return $this->hasMany('App\Project');
}


}

一个项目可以有一个类别。类别名称可以位于多个项目中。我现在想在表格中填充一个下拉列表,在其中插入一个新项目:为了实现这一点,

我走了一条路线:

Route::get('myform', 'HomeController@myform');

我在我的HomeController中创建了一个函数,在那里我将(我确实这样认为)变量$cat传递给我的视图:

public function myform()
{
$cats = Cat::pluck('name', 'id');
return view('project-insert', get_defined_vars());
}

或其他版本:

public function myform()
{
$cats = Cat::pluck('name', 'id');
return view('project-insert',compact('cats'));
}

在我看来,我正试图用以下方式打印数据:

{!! Form::open() !!}
{!! Form::select('id', $cats, null, ['class' => 'form-control']) !!}
{!! Form::close() !!}

但我得到了一个“未找到变量猫”错误。如何告诉视图获取变量“$cats”?

我创建了一个新视图(myform.blade.php),并在那里尝试了相同的方法:

 <html>
 <body>

   {{ dd($cats) }}

   {!! Form::open() !!}

       {!! Form::select('id', $cats, null, ['class' => 'form-control']) !!}

   {!! Form::close() !!}

 </body>
</html>

和路线:

 Route::get('myform', 'HomeController@myform'); 

在我的控制器链接到新的视图:

 public function myform() { 
   $user = Auth::user(); 
   $cats = Cat::pluck('name', 'id'); 
   return view('myform', get_defined_vars()); 
 } 

而现在:

 dd($cats) 

显示出想要的结果...奇怪的是,它在新刀片上工作,而不是在旧刀片上!

谢谢你的帮助和建议!

斯特凡

共有2个答案

唐钊
2023-03-14

我的错误。问题的发生是因为错误的路线

<form method="POST" action="{{ route('project-insert') }}">

路线必须是:

Route::post('project-insert', 'ProjectController@insert')->name('project-insert');

而不是

Route::post('project-insert', 'ProjectController@insert');

抱歉搞混了:-(

亲切问候,,

斯特凡

黄正浩
2023-03-14

尝试

return view('project-insert', ['cats' => $cats]);

但是compactget\u defined\u vars是相同的。您可以尝试在{!!Form::open()!!}之前添加以下内容:{{dd($cats}}}

 类似资料:
  • 问题内容: 我需要使用JavaScript根据下拉菜单A中的选择更改下拉菜单B的内容。没有涉及到数据库查询- 我事先知道应该在A中选择B的内容。我已经找到了一些使用AJAX的示例,但是由于没有涉及到数据库查询,所以没有必要。谁能为我指出一些示例代码以实现此目的? 问题答案: function configureDropDownLists(ddl1, ddl2) {

  • 问题内容: 我设法用json对象填充下拉菜单,效果很好。目前,我正在尝试根据从下拉菜单中选择的选项显示隐藏div中的图像。当下拉列表由json对象填充时,我将如何检索图像数据。 HTML JSON文件 这就是我使用jquery填充下拉菜单的方式。 jfiddle中任何有效的示例,将不胜感激!谢谢。 问题答案: 现场演示

  • 我感谢每个人给我的帮助。我现在的下拉框似乎在变化,但它是空白的。我正在使用的当前编码编辑如下: 当我检查页面上的空下拉元素时,我会得到这个: 警告:scandir(/home/rev/public_html/evo/.../用户/成瘾)[function.scandir]:无法打开dir:在行117的 /home/revo/public_html/evo/codesaveindex.php中没有这

  • 问题内容: 我已经用AJAX填充了ASP.net下拉列表,现在我需要获取ID以C#方法存储到数据库中((我正在使用LINQ) 这是我的网络方法 我的test.aspx代码 问题答案: 如果在中添加选项,则无法从中获取所选值。您可以尝试以下

  • 问题内容: 我想创建两个下拉列表,类别和项目。 如果我选择名为car的类别之一,则项目下拉列表应包含Honda,Volvo和Nissan。 如果我选择一个名为phone的类别,则项目下拉列表应具有此iPhone,Samsung,Nokia。 我怎样才能做到这一点?我知道我无法使用纯HTML做到这一点。 问题答案: 工作演示 (带有jquery) 更新 :使用eval()能够添加所需的任意数量的数组

  • 问题内容: 我正在尝试从PHP中的mySQL查询结果填充下拉框。我在网上查找了示例,并在网页上进行了尝试,但是由于某些原因,它们根本没有填充我的下拉框。我已经尝试调试代码,但是在我看过的网站上并没有真正解释它,我无法弄清楚每一行代码是什么。任何帮助将是巨大的:) 这是我的查询: 问题答案: 您需要确保如果使用的是WAMP之类的测试环境,请将用户名设置为root。这是一个示例,该示例连接到MySQL