我是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)
显示出想要的结果...奇怪的是,它在新刀片上工作,而不是在旧刀片上!
谢谢你的帮助和建议!
斯特凡
我的错误。问题的发生是因为错误的路线
<form method="POST" action="{{ route('project-insert') }}">
路线必须是:
Route::post('project-insert', 'ProjectController@insert')->name('project-insert');
而不是
Route::post('project-insert', 'ProjectController@insert');
抱歉搞混了:-(
亲切问候,,
斯特凡
尝试
return view('project-insert', ['cats' => $cats]);
但是compact
和get\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