我是Laravel的新手,语法不好。我看过许多教程并阅读了许多答案,但是,我的主意还是不明白如何为外键提供一个下拉字段。
我有一个表“ Section”和另一个“ Class”。我想在部分页面中显示类的名称。
部分迁移
Schema::create('sections', function (Blueprint $table) {
$table->increments('id');
$table->string('title');
$table->integer('class_id')->unsigned();
$table->foreign('class_id')->references('id')->on('classses');
});
分类迁移
Schema::create('classses', function (Blueprint $table) {
$table->increments('id');
$table->string('title');
$table->timestamps();
});
老实说,我不知道我是否应该更换控制器。
刀片/视图
<div class="form-group">
<label for="name">Name</label>
<input type="text" class="form-control" name="name" id="title">
</div>
<div class="form-group">
<label for="cid">Class</label>
???????????????
</div>
索引功能
public function index()
{ $sections = Section::all();
return view('sections.index', compact('sections'));
$classs = Classs::all()->pluck(['id', 'title']);
return view('sections.index')->with('classs', $classs); }
错误是在$ class行和期望的字符串处无法访问的语句,数组位于([id,'title])
答案 0 :(得分:1)
在您的控制器中,您具有返回视图的功能。
将其更改为包含->with()
,以便您可以在视图中访问这些类:
// if the controller is not for the classes, add this up top:
use App\Classs; // include model name
$classs = Classs:all();
return view('yourView')->with('classe', $classs);
然后,在您看来,您可以执行以下操作:
<div class="form-group">
<label for="cid">Class</label>
<select class="" name="cid">
<option value="null">Class</option>
@foreach($classs as $class)
<option value="{{$class->id}}">{{$class->title}}</option>
@endforeach
</select>
</div>
它将遍历数据库中的所有类,并为它们创建一个<option>
元素。在第一次迁移时,您正在使用另一个表中的id,因此需要将其设置为值。
将索引函数更改为此:
public function index()
{
$sections = Section::all();
$classs = Class::all();
return view('sections.index')->with('sections', $sections)->with('classs', $classs);
}
您能告诉我在哪里可以编写条件,例如role_id = 2等的类中的select *。
基本上,在MVC框架中,您在控制器中进行所有查询,并将数据传递到视图中,在其中显示数据。
Laravel有一个DB class,可用于基本查询:
select * from class where role_id = 2
使用DB类将在Laravel中变成这个样子。
DB::table('class')->where('role_id', 2)->get();
// or if it's a model:
Model::where('role_id', 2)->get();
答案 1 :(得分:0)
我现在已经在刀片页面中使用了此代码
"subnets": [
{
"name": "[variables('subnet1Name')]",
"properties": {
"addressPrefix": "10.0.0.0/24"
}
},
{
"name": "[variables('subnet2Name')]",
"properties": {
"addressPrefix": "10.0.1.0/24"
}
}
]