首页 > 解决方案 > 如何添加指向下拉选择选项的链接?

问题描述

这是我的下拉选择的图像,显​​示岛屿,例如 Maiana 作为父母,罪魁祸首作为孩子,例如 Batiboa Kumeto 等我只是想知道如何在选择选项中添加链接并将 id 传递给另一个表单?

我试图创建一个下拉菜单,如上图所示

Maiana - Koriaue Miruango - Batiboa Kumeto

Abaiang - Erenawa Aeete

但我无法实现的是添加到 Koriaue Miruango 的链接, - Maiana 岛下的 Batiboa Kumeto 等等。一旦单击其中一个名称,例如 Batiboa Kumeto,就会传递一个 ID 以加载另一个表单。

感谢你的帮助

我的岛屿模型

<?php

namespace App\Model\Enforcement;
use Illuminate\Database\Eloquent\Model;

class Island extends Model
{
    protected $table = 'islands';

    protected $fillable = ['island_name'];

    public function culprits(){
        return $this->hasMany(Culprit::class, 'island_id');
    }
 }

我的罪魁祸首模型

<?php

namespace App\Model\Enforcement;
use Illuminate\Database\Eloquent\Model;

class Culprit extends Model
{
    protected $table = 'culprits';
    protected $fillable =  ['island_id','first_name','last_name','age','home_island'];

   public function island(){
       return $this->belongsTo(Island::class, 'island_id');
   }

   public function crimes(){
       return $this->hasMany(Crime::class);
   }
}

我的控制器

<?php

namespace App\Http\Controllers\Frontend\Enforcement;
use App\Model\Enforcement\Culprit;
use App\Model\Enforcement\Island;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;

class TestController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        $islands = Island::with(['culprits'])->get();
       // $culprits = Culprit::get();

        // dd($islands, $culprits);


       return  view('backend.enforcement.admin.tests.show',compact('islands','culprits'));
}

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create($id)
    {
        $culprit = Culprit::findOrFail($id);
        $offences = Offence::pluck('name','id')->all();
        $fishedareas = Fishedarea::pluck('fishedarea_name','id')->all();

     return view('backend.enforcement.admin.tests.create',compact('culprit','offences','fishedareas'));
}

我的路线

   Route::resource('/enforcements/tests', 'Frontend\Enforcement   \TestController');
  Route::get('/enforcements/tests/{id?}', 'Frontend\Enforcement\TestController@create')->name('tests.create');

我的索引视图

<select data-placeholder="Select island" style="width:350px;"   class="chosen-select" tabindex="5">
<option value=""></option>
@foreach ($islands as $island)
        <optgroup value="{{$island->id}}" label="    {{$island->island_name}}">
        @foreach($island->culprits as $culprit)
        <option value = "{{$culprit->id}}"> {{$culprit->first_name}}<a  href="{{route('tests.create', $culprit->id)}}"> {{$culprit->last_name}}    </a></option>
        </optgroup>
        @endforeach
@endforeach
</select>

我的创建表格

                       <div>

                        {!! Form::open(array('url' => route('tests.store'))) !!}
                        {!! Form::hidden('id', $culprit->id, old('id'), ['class' => 'form-control']) !!} 
                        {!! Form::label('offence_id','Offence Name')!!}
                        {!! Form::select('offence_id',['' => 'Choose Offence Type']+ $offences, null, ['class'=>'form-control'])!!}
                        {!! Form::label('fishedarea_id','Fished Area')!!}
                        {!! Form::select('fishedarea_id',['' => 'Choose Fished Areas']+ $fishedareas, null, ['class'=>'form-control'])!!}
                        {!! Form::label('crime_date','Date')!!}
                        {!! Form::date('crime_date',null,['class'=>'form-control'])!!}
                        {!! Form::label('remarks','Remarks')!!}
                        {!! Form::textarea('remarks',null,['class'=>'form-control'])!!}

                       </div>   


                       <div class="form-group">

                       <button class="btn btn-primary">Add New</button>

                       </div>

                        <div>

            {!! Form::close() !!}
                    </div>

标签: laravel

解决方案


至于知道我做了一些试错实验,并想出了这样的东西来解决我的问题。肯定有更好的方法

<select name="forma"  data-placeholder="Select island" style="width:350px;"   class="chosen-select" tabindex="5" onchange="location =    this.options[this.selectedIndex].value;">
<option value=""></option>
@foreach ($islands as $island)
        <optgroup value="{{$island->id}}" label="{{$island->island_name}}">
        @foreach($island->culprits as $culprit)
        {{--<option value="{{route('tests.create', $culprit->id)}}">    {{$culprit->first_name}}  {{$culprit->last_name}}</option>--}}
        <option value="{{route('tests.create', $culprit->id)}}">
        <a href="{{route('tests.create', $culprit->id)}}">{{$culprit->first_name}}      {{$culprit->last_name}}</a>
       </option>
       </optgroup>
        @endforeach
@endforeach
</select>

推荐阅读