Как показать в выпадающем списке каскадом в Laravel 5.6? - PullRequest
0 голосов
/ 17 сентября 2018

У меня есть 3 таблицы, т.е. меню, подменю и страницы.

Таблица меню

Schema::create('menu', function (Blueprint $table) {
    $table->increments('menu_id')->primary();
    $table->string('name');
    $table->timestamps();
});

Модель меню

protected $table = 'menu';
protected $fillable = ['name'];
protected $dates = ['deleted_at'];

Таблица подменю

Schema::create('submenu', function (Blueprint $table) {
    $table->increments('submenu_id')->primary();
    $table->integer('menu_id');
    $table->foreign('menu_id')
        ->references('id')
        ->on('menu')
        ->onDelete('cascade');
    $table->string('title');
    $table->timestamps();
});

Модель подменю

 protected $table = 'submenu';
protected $fillable = ['menu_id','title'];
protected $dates = ['deleted_at'];

public function menu(){
    return $this->belongsTo('App\Menu','menu_id','menu_id');
}

Таблица страниц

Schema::create('page', function (Blueprint $table) {
    $table->increments('page_id');
    $table->integer('menu_id');
    $table->integer('submenu_id');
    $table->text('description');
    $table->integer('status')->default('1');
    $table->softDeletes();
    $table->timestamps();
});

Модель страницы

  protected $table = 'page';
protected $fillable = ['menu_id', 'submenu_id', 'description'];
protected $dates = ['deleted_at'];

PageController

Функция addPage

 public function addPage(Request $request){
   if($request->isMethod('post')){
       $data = $request->all();

          $this->validate($request, [
            'menu_id' => 'required',
            'description' => 'required'
          ],
          [
            'menu_id.required' => 'Menu Name is required',
            'description.required' => 'Description is required'
        ]);

       $page = new Page();
       $submenu = new Submenu();
        $menu = new Menu();
       $page->menu_id = $data['menu_id'];
       $page->submenu_id = $data['submenu_id'];
       $page->description = $data['description'];
     // print_r($data);die;
       $page->save();

     // echo $title; ;die;
       return redirect('/admin/view-page')->with('flash_message_success','Page Added Successfully..');
   } 

   return view('admin.page.add_page');

}

addpage.blade.php

<div class="control-group">
          <label class="control-label">Menu Name</label>
          <div class="controls">
          <?php $menu = DB::table('menu')->orderBy('name')->where('status',1)->get(); ?>
            <select name="menu_id" id="menu_id">
              <option selected disabled>Select Menu Name</option>
              @foreach($menu as $data)
              <?php if($data->deleted_at==null) { ?>
              <option value="{{ $data->menu_id }}">{{ strtoupper($data->name) }}</option>
              <?php } ?>
             @endforeach
            </select>
          </div>
        </div>
        <div class="control-group">
          <label class="control-label">Submenu Title</label>
          <div class="controls">
          <?php $submenu = DB::table('submenu')->orderBy('title')->where('status',1)->get(); ?>
            <select name="submenu_id" id="submenu_id">
              <option selected disabled>Select Submenu Title</option>
              @foreach($submenu as $data)
              <?php if($data->deleted_at==null) { ?>
              <option value="{{ $data->submenu_id }}">{{ $data->title }}</option>
              <?php } ?>
             @endforeach
            </select>
          </div>
        </div>

Я сохранил подменю в соответствии с меню в addubmenu.blade.php.Теперь, добавляя новую страницу, я хочу показать все меню в первом раскрывающемся меню и подменю во втором раскрывающемся меню в соответствии с выбранным меню в первом раскрывающемся списке.

Я не смог найти решение.Мне нужна помощь, чтобы решить эту проблему ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...