从选择中选择一个项目后打开模型? Laravel

时间:2016-08-02 13:31:48

标签: laravel model selection

我在这里有这个选择:

 {!! Form::open(['action' => 'ProductController@products', 'method' => 'post']) !!}
 {!! Form::select('product_id', $products) !!}
 {!! Form::close() !!}

$ products variable:

$products = Products::lists('name', 'id')->toArray();

现在我有一个工作模型。我在我的其他项目中使用了模型。

我想使用的其他项目模型:

打开模型:

@foreach($themes as $thema)
      <a style="cursor: pointer" data-toggle="modal" data-target="#{{ $thema->id }}">
            <span class="text">{{ $thema->thema }}<br></span>
      </a>
@endforeach

模特:

@foreach($themes as $thema)
    <div class="modal fade" id="{{ $thema->id }}" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
        <div class="modal-dialog" role="document">
            <div class="modal-content">
                <div class="modal-header">

                    // not important

                </div>
                <div class="modal-body">

                // not important

                </div>
            </div>
        </div>
    </div>
@endforeach

我的问题是我无法弄清楚如何通过点击我选择的项目来打开模型。当我点击选择框中的项目时,正确的东西弹出模型。

或创建一个获取product_id的按钮,如果它被klicked打开模型。

我在Javascript中的知识很小,可以创建这个,也许有另一种方法,但我还没找到。

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

  //HTML

 @foreach($variable as $fromController)
    <tr>
        <td> <a data-id="{{ $fromController->id }}"></a>{{ $fromController->name }} </td>
    </tr>
    @endforeach

    <div class="modal">

    </div>



     //JAVASCRIPT (AJAX)
//Jquery required

<script>
$('a[data-id]').click(function(event) {
    var val = $(this).attr('data-id');

    $.ajax({
        url: '/getdata',
        type: 'POST',
        dataType: 'json',
        data: {id: val},
        success: function(data){
            $('.modal').html(data['value']).modal('show');
        }
    });


    return false;
});
</script>


//Route

Route::post('/getdata', 'ControllerName@getData');

//Controller

public function getData(Request $req){
    $get = Model::where('id', $req->input('id'))->first();
    //Assuming you have a column named "description"

    return response()->json(['value' => $get->description]);
}

希望你能从中获得灵感。这样你只有一个模态。

答案 1 :(得分:0)

在Laravel之类的MVC framework中,你不应该使用你的模型来格式化你的输出。这是观点的工作。

此代码应位于视图中,并使用Javascript在控制器中调用方法。您无法使用Javascript调用模型。