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

3

我正在使用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>

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


你在向 postIndex 发送请求后返回了一个视图吗? - Emeka Mbah
更新完毕。 - Yoanna Murdzheva
它会返回以下内容:如果($class->id) { return redirect()->back()->with('message', [ 'type'=> 'success', 'message' => '成功添加新班级!' ]); }否则,它会返回以下内容: 返回redirect()->back()->with('message', [ 'type'=> 'danger', 'message' => '未能添加班级!' ]); - Yoanna Murdzheva
您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - Yoanna Murdzheva
是的,Clas::get() 包含了 nameprofile_idprofile_id 将我连接到表格 Profile,里面包含一些档案名称,我只想在我的视图中展示这些名称以供选择。 - Yoanna Murdzheva
显示剩余9条评论
2个回答

0

0
关于您的评论。
这将返回一个列表(数组)到视图:
编辑过的
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>

那么你的postIndex:

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' => 'Класът не е записан!'
    ]);
}

但仍然没有在下拉菜单中显示配置文件列表。 - Yoanna Murdzheva
getIndex() 中执行以下代码 dd(Clas::lists('name', 'profile_id'));,然后刷新您的索引页面并向我展示输出结果。 - Emeka Mbah
你确定你的表里有数据吗?同时执行 dd(Clas::get()) 并展示给我看。 - Emeka Mbah
是的,我有数据,dd(Clas::get()),并且我有这个:Collection {#202 ▼ #items: [] } - Yoanna Murdzheva
将类名(class-name)更改为(class_name)。 - Emeka Mbah
显示剩余18条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接