Laravel,从控制器获取数据用于显示目的

时间:2017-04-25 21:38:44

标签: php web laravel-5 laravel-blade

我想根据用户在表单中提供的数据,在刀片视图中显示在控制器中计算的数据。现在我这样做是通过:

//View xyz.blade.php
<div class="card">
    <div class="card-header">Add link</div>
    <div class="card-block">
        {{ Form::open(array('url' => 'getSimilar', 'method' => 'GET')) }}
        {{ Form::token() }}
        <div class="form-group">
            {{ Form::label('url', 'url:') }}
            {{ Form::text('url', '') }}
        </div>
        {{ Form::submit('Get') }}
        {{ Form::close() }}
    </div>

    @if( ! empty($similar))
        <div class="card-block">
            @foreach ($similar as $item)
                {{$item->title}} <br/>
            @endforeach
        </div>
    @endif
</div>

//Controller
public function getSimilar(){
    ..
    return View('xyz', ['similar' => $found]);
} 

上面的代码按预期工作。我可以提供一个网址,点击“获取”后,我可以看到表单下方找到的项目列表。但是,有些东西告诉我这不是正确的方法,因为整个页面都会刷新。我是对的(所以上面的代码很糟糕)?如果是这样,是否有任何内置功能可以显示提取的数据而无需刷新?我在官方的Laravel表格页面上搜索过,但我没有找到任何内容。

1 个答案:

答案 0 :(得分:2)

据我了解你的问题。

代码似乎没问题,但是如果没有页面刷新,您可能无法创建逻辑,因为用户交互取决于需要重新加载的服务器响应。

您可以使用AJAX在没有页面刷新的情况下制作另一个交互式操作,因此当用户单击按钮时,他会从服务器获取结果,然后在页面中显示结果。因为AJAX请求/响应发生在用户的幕后,所以它给人的印象是页面没有重新加载,这可能是你想要的。