Php 带数据库的laravel下拉列表

Php 带数据库的laravel下拉列表,php,forms,laravel,laravel-4,Php,Forms,Laravel,Laravel 4,我是laravel框架的新手,我发现很难理解laravel表单的可用性。。。。这是我面临的一些问题 首先我的下拉列表应该有我的类别名称,在下拉列表的最后是我的特定下拉列表,添加新类别,当我选择时将触发我的javascript。。。这是我的表格代码 {{ Form::select('kategori',KategoriArtikel::lists('name','id'),Input::old('kategori'),array('class' => 'form-control', 'onC

我是laravel框架的新手,我发现很难理解laravel表单的可用性。。。。这是我面临的一些问题

首先我的下拉列表应该有我的类别名称,在下拉列表的最后是我的特定下拉列表,添加新类别,当我选择时将触发我的javascript。。。这是我的表格代码

{{ Form::select('kategori',KategoriArtikel::lists('name','id'),Input::old('kategori'),array('class' => 'form-control', 'onChange' => 'changeFunc(value)')) }}
这将从我的数据库中显示正确的值和正确的选择值,但它缺少我的特定下拉列表,所以我尝试这样添加

 <?php 
     $tambah = array('tambah' => 'Tambah Kategori Baru');
     $list = array_merge(KategoriArtikel::lists('name','id'),$tambah); 
 ?>
{{ Form::select('kategori',array(KategoriArtikel::lists('name','id'),$tambah),Input::old('kategori'),array('class' => 'form-control', 'onChange' => 'changeFunc(value)')) }}
正如你所看到的,['kategori']应该使我表中的字段kategori为9,但它不会改变我数据库中的任何内容

我很简单,但在使用数据库时会非常混乱(找不到任何与数据库检索数据等相关的文档示例)

编辑:

这是我的控制器

public function update($id)
{
    $artikel = Artikel::findOrFail($id);

    if(Input::get('simpan')){
        //dd(Input::all());

        $validator = Validator::make($data = Input::all(), Artikel::$rules);

        if ($validator->fails())
        {
            return Redirect::back()->withErrors($validator)->withInput();
        }

        $judul = Input::get('judul');
        $artikel->update($data);

        return Redirect::route('admin.artikels.index')->with('message', 'Artikel ' .$judul. ' Telah berhasil di ubah.');
    }elseif(Input::get('batal')){
        return $this->index();
    }
}
这是我的观点

@extends('admin._layouts.admin')

@section('content')
{{ Form::model($artikel, array('route' => array('admin.artikels.update',$artikel->id), 'method' => 'put')) }}
    <div class="panel panel-default">
        <!--button-->
        <div class="panel-heading tooltip-demo">
            {{ Form::submit('Simpan',array('class' => 'btn btn-primary', 'data-toggle' => 'tooltip', 
               'data-placement' => 'top','title' => 'Menyimpan artikel' )) }}
            {{ Form::submit('Batal',array('class' => 'btn btn-default', 'data-toggle' => 'tooltip', 
               'data-placement' => 'top','title' => 'Batal menambah artikel dan kembali ke halaman kelola artikel' )) }}
        </div>
        <!--/button-->
        <div class="panel-body">
            <!--judul-->
            <div class="col-lg-10">
            <div class="form-group">
                {{ Form::label('Judul Artikel') }}
                {{ Form::text('judul',null,array('class' => 'form-control', 'placeholder' => 'Silahkan masukkan judul artikel'))}}
                {{ $errors->first('judul', '<p class="error">:message</p>') }}
            </div>
            </div>
            <!--/judul-->
            <!--kategori-->
            <div class="col-lg-4">
            <div class="form-group">
                {{ Form::label('Kategori') }}
                <?php 
                    $tambah = array('tambah' => 'Tambah Kategori Baru');
                    $list = array_merge(KategoriArtikel::lists('name','id'),$tambah); 
                ?>
                {{ Form::select('kategori',$list,'Pilih Kategori Artikel',array('class' => 'form-control', 'onChange' => 'changeFunc(value)')) }}
            </div>
            </div>
            <!--/kategori-->
            <!--kategori baru-->
            <div class="col-lg-4"  id="pilihan" style="display:none;">
            <div class="form-group">
                {{ Form::label('Kategori Baru') }}
                {{ Form::text('kategori_baru',null,array('class' => 'form-control', 'placeholder' => 'Silahkan masukkan kategori baru', 
                   'maxlength' => '30'))}} 
            </div>
            </div>
            <!--/kategori baru-->
            <!--status-->
            <div class="col-lg-4">
            <div class="form-group">
                {{ Form::label('Status') }}
                {{ Form::select('status',array('0' => 'Tidak diterbikan', '1' => 'Terbitkan'),null, array('class' => 'form-control')) }}
            </div>
            </div>
            <!--/status-->
            <!--artikel pilihan-->
            <div class="col-lg-5">
            <div class="form-group">
                {{ Form::label('Artikel Pilihan') }}
                <div class="input-group">
                <span class="input-group-addon">
                {{ Form::checkbox('pilihan','1',true,array('id' => 'artikelpilihan')) }}
                </span>
                {{ Form::text('null','Tidak',array('class' => 'form-control', 'id' => 'artikeltext' ,'disabled' => 'true'))}}
                </div>
            </div>
            </div>
            <!--/artikel pilihan-->
            <!--content-->
            <div class="col-lg-12">
                {{ Form::label('Isi Artikel') }}
                {{ Form::textarea('content',null,array('style' => 'height:300px')) }}
                {{ $errors->first('content', '<p class="error">:message</p>') }}
            </div>
            <!--/content-->
        </div>
     </div>
{{ Form::close() }}
{{ HTML::script('js/tinymce/tinymce.min.js') }}
<script type="text/javascript">
    tinymce.init({
        selector: "textarea",
        theme: "modern",
        skin: 'light',
        plugins: [
            "advlist autolink lists link image charmap print preview hr anchor pagebreak",
            "searchreplace wordcount visualblocks visualchars code fullscreen",
            "insertdatetime media nonbreaking save table contextmenu directionality",
            "emoticons template paste textcolor colorpicker textpattern"
        ],
        toolbar1: "insertfile undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image",
        toolbar2: "print preview media | forecolor backcolor emoticons | fontselect fontsizeselect",
        image_advtab: true,
        templates: [
            {title: 'Test template 1', content: 'Test 1'},
            {title: 'Test template 2', content: 'Test 2'}
        ],
        file_browser_callback: RoxyFileBrowser
    });


    function RoxyFileBrowser(field_name, url, type, win) {
      var roxyFileman = '../../../../public/js/tinymce/plugins/fileman/index.html?integration=tinymce4';
      if (roxyFileman.indexOf("?") < 0) {     
        roxyFileman += "?type=" + type;   
      }
      else {
        roxyFileman += "&type=" + type;
      }
      roxyFileman += '&input=' + field_name + '&value=' + document.getElementById(field_name).value;
      tinyMCE.activeEditor.windowManager.open({
         file: roxyFileman,
         title: 'File Manager',
         width: 800, 
         height: 480,
         resizable: "yes",
         plugins: "media",
         inline: "yes",
         close_previous: "no"  
      }, {     window: win,     input: field_name    });
      return false; 
    }
</script>
@stop
@extends('admin.\u layouts.admin'))
@节(“内容”)
{{Form::model($artikel,array('route'=>array('admin.artikels.update',$artikel->id),'method'=>put'))}
{{Form::submit('Simpan',array('class'=>'btn btn primary','data toggle'=>'tooltip',
“数据位置”=>“顶部”、“标题”=>“门尼潘·阿蒂克尔”)}
{{Form::submit('Batal',array('class'=>'btn-btn-default','data-toggle'=>'tooltip',
“数据位置”=>“顶部”、“标题”=>“Batal menambah artikel and kembali ke halaman kelola artikel”)}
{{Form::label('Judul Artikel')}
{{Form::text('judul',null,array('class'=>'Form control','placeholder'=>'Silahkan masukkan judul artikel'))}
{{$errors->first('judul','

:message

')} {{Form::label('Kategori')} {{Form::select('kategori',$list,'Pilih kategori Artikel',array('class'=>'表单控件','onChange'=>'changeFunc(value)'))} {{Form::label('Kategori Baru')} {{Form::text('kategori_baru',null,数组('class'=>'表单控件','placeholder'=>'Silahkan masukkan kategori baru', 'maxlength'=>'30'))} {{Form::label('Status')} {Form::select('status',array('0'=>'Tidak-diterbikan','1'=>'Terbitkan'),null,array('class'=>'Form-control'))} {{Form::label('Artikel Pilihan')} {{Form::checkbox('pilihan','1',true,array('id'=>'artikelpilihan'))} {Form::text('null','Tidak',array('class'=>'Form control','id'=>'artikeltext','disabled'=>'true'))} {{Form::label('Isi Artikel')} {{Form::textarea('content',null,array('style'=>'height:300px'))} {{$errors->first('content','

:message

)} {{Form::close()}} {{HTML::script('js/tinymce/tinymce.min.js')} tinymce.init({ 选择器:“文本区域”, 主题:“现代”, 皮肤:“轻”, 插件:[ “advlist autolink列出链接图像charmap打印预览hr锚定页面中断”, “searchreplace wordcount visualblocks visualchars代码全屏显示”, “insertdatetime媒体非中断保存表上下文菜单方向性”, “表情模板粘贴文本颜色选择器文本模式” ], 工具栏1:“插入文件撤消重做|样式选择|粗体斜体|对齐左对齐中心对齐右对齐对齐对齐|粗体numlist outdent缩进|链接图像”, 工具栏2:“打印预览媒体|前景色背景表情|字体选择字体大小选择”, 图像\u advtab:正确, 模板:[ {标题:'测试模板1',内容:'测试1'}, {标题:'测试模板2',内容:'测试2'} ], 文件\浏览器\回调:RoxyFileBrowser }); 函数RoxyFileBrowser(字段名称、url、类型、win){ var roxyFileman='../../../public/js/tinymce/plugins/fileman/index.html?integration=tinymce4'; 如果(roxyFileman.indexOf(“?”)小于0){ roxyFileman+=“?type=“+type; } 否则{ roxyFileman+=”&type=“+type; } roxyFileman+='&input='+field_name+'&value='+document.getElementById(field_name).value; tinyMCE.activeEditor.windowManager.open({ 档案:roxyFileman, 标题:“文件管理器”, 宽度:800, 身高:480, 可调整大小:“是”, 插件:“媒体”, 内联:“是”, 关闭上一个:“否” },{window:win,输入:field_name}); 返回false; } @停止
如果我正确理解了您的问题,您希望根据数据库中的值填充一个下拉列表,并希望在“类别”下拉列表中显示“选择类别”。并且当前没有保存您的下拉列表值

要填充下拉列表,请将以下代码放在控制器加载视图文件的方法中

$data['kategori'] = KategoriArtikel::lists('name','id');
$data['kategori'][''] = 'Select a kategori';        
return View::make('YOUR_VIEW_FILE', $data); 
在视图文件中,简单地使用以下内容(相同的规则适用于其他选择下拉列表):

上面的代码基本上生成如下内容:

<select id="category" class="form-control">
  <option value="">Select a Kategori</option>
  <option value="1">First Kategori</option>
  <option value="2">Second Kategori</option>
</select>

选择一个Kategori
第一卡泰戈里酒店
第二片谷
Form::select()
中的第三个参数需要一个默认选项值,如果您提供一个值,它将进行比较
$data['kategori'] = KategoriArtikel::lists('name','id');
$data['kategori'][''] = 'Select a kategori';        
return View::make('YOUR_VIEW_FILE', $data); 
{{ Form::select('kategori', $kategori , Input::old('kategori'), array('id' => 'category', 'class' => 'form-control',  )) }} 
<select id="category" class="form-control">
  <option value="">Select a Kategori</option>
  <option value="1">First Kategori</option>
  <option value="2">Second Kategori</option>
</select>
public function create()
    {
        $category1= Category1::lists('category1','id');
        $category2= Category2::lists('category2','id');
       //you can have many select lists in an form
        return      
     View::make('someobject.create',compact('category1','category2'));
    }
{{Form::open(array('route'=>'someobject.store'))}}
   <div>
    {{Form::label('category1', 'category1')}}  
    {{Form::select('category1',array('' => 'Please select') + $category1) }}
    <span class="errors">{{$errors->first('category1')}}</span>
    {{Form::label('category2', 'category2')}}  
    {{Form::select('category2',array('' => 'Please select') + $category2) }}
    <span class="errors">{{$errors->first('category2')}}</span>
   </div>
   <div>
   {{Form::submit('Save',array('class' => 'btn'))}}
   </div>