Laravel从员工表下的相关表中呈现下拉列表

时间:2016-09-29 11:49:39

标签: php mysql laravel

我有2张桌子。员工表和角色表。在我的employee.show刀片中,我想呈现已经分配或可以分配的角色的下拉列表。我没有使用集体形式,因为所有教程都使用了这些形式。

我的控制器

   <div class="form-group">
<label class="col-md-4 control-label" for="roles_id">Role</label>
<div class="col-md-4">
<select id="roles_id" name="roles_id" class="form-control">
<option value="{{ $employee->roles->id }}">{{ $employee->roles->role_name }}</option>
</select>            
</div>
</div>

和我的show.blade。问题是如何从所有其他角色的db中提取完整列表,以便用户可以更新?

    <build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <mainClass>YourSpringBootJavaClass</mainClass>
                <layout>WAR</layout>
            </configuration>
            <executions>
                <execution>
                    <goals>
                        <goal>repackage</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
    <finalName>yourwarfileName</finalName>
</build>

1 个答案:

答案 0 :(得分:0)

您在控制器中所做的事情似乎是正确的。但是,您的视图应循环遍历角色并为其创建选项。请记住,您已使用Role::pluck('role_name', 'id'),这将返回'id' => 'role_name'的数组。

您可以通过使用三元语句将所选属性添加到员工的角色选项中来决定选择哪个属性,该语句将员工的role_idrole_id进行比较{1}}我们目前正在循环中查看。

尝试这样的事情:

<select name="roles_id">
    <option value="">Select...</option>
    @foreach ($roles as $roleId => $roleName)
        <option value="{{ $roleId }}"{!! $employee->role_id == $roleId ? ' selected' : '' !!}>{{ $roleName }}</option>
    @endforeach
</select>