填充数据库中的选择选项 - Laravel 5.2


Populating select options from db - laravel 5.2

我正在使用Laravel Collective和Laravel 5.2...我对此有点陌生,所以如果有人可以提供帮助,我将不胜感激。我想将数据填充到我的视图中,这是我的控制器:

<?php
namespace App'Http'Controllers'Admin;
use Illuminate'Http'Request;
use App'Http'Requests'SaveProfileRequest;
use App'Http'Requests;
use App'Clas;
use App'Profile;
use App'Http'Controllers'Controller;

class ClassesController extends Controller
{
    public function getIndex() {
        return view('admin.classes.list', [
            'classes' => Clas::get()
        ]);
    }

    public function postIndex(Request $request) {
        $class = Clas::create([
            'profile_id'=> 
            'name' => $request ->input('class-name'),
        ]);
        if($class->id) {
            return redirect()->back()->with('message', [
                'type'=> 'success',
                'message' => 'Успешно записан нов клас!'
            ]);
        }
        return redirect()->back()->with('message', [
            'type'=> 'danger',
            'message' => 'Класът не е записан!'
        ]);
    }
}

在我看来,我有这个

<div class="panel-body">
    {!! Form::open(['method' => 'post', 'class' => 'form-horizontal']) !!}
    <div class="form-group">
        {!! Form::label('class-name','Клас:', ['class' => 'control-label col-md-3']) !!}
        <div class="col-md-6">
            {!! Form::text('class-name', null,['class' => 'form-control', 'placeholder' => 'например: 8а' ]) !!}
        </div>
    </div>
    <div class="form-group">
        {!! Form::label('profile-name','Избери профил:', ['class' => 'control-label col-md-3']) !!}
        <div class="col-md-6">
            {!! Form::select('profile-name') !!}
        </div>
    </div>
    <div align="center">
        {!! Form::submit('Запиши', ['class' => 'btn btn-default']) !!}
    </div>
    {!! Form::close() !!}
</div>

我的问题是如何传递数据?我应该在控制器和视图中写什么来连接它们?

关于你的评论。

这会将列表(数组)返回到视图:

编辑

public function getIndex() {
    return view('admin.classes.list', [
       //'classes' => Clas::get() //returns object, profile
       'profiles' => Profile::lists('name', 'id');  //returns array
    ]);
}

使用profile_id和名称列表填充选择菜单注意:我把profile-name改成了profile_id

<div class="form-group">
    {!! Form::label('profile_id','Избери профил:', ['class' => 'control-label col-md-3']) !!}
    <div class="col-md-6">
        {!! Form::select('profile_id', $profiles) !!}
    </div>
</div>

然后你的帖子索引:

public function postIndex(Request $request) {
    $class = Clas::create([
        'profile_id'=> $request->get('profile_id'),
        'name' => $request ->input('class-name'),
    ]);
    if($class->id) {
        return redirect()->back()->with('message', [
            'type'=> 'success',
            'message' => 'Успешно записан нов клас!'
        ]);
    }
    return redirect()->back()->with('message', [
        'type'=> 'danger',
        'message' => 'Класът не е записан!'
    ]);
}
看看

https://laravel.com/docs/5.0/views#basic-usage

您可以通过调用函数来传递视图变量view( string $script, array $viewVariables )