У меня есть 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.Теперь, добавляя новую страницу, я хочу показать все меню в первом раскрывающемся меню и подменю во втором раскрывающемся меню в соответствии с выбранным меню в первом раскрывающемся списке.
Я не смог найти решение.Мне нужна помощь, чтобы решить эту проблему ...