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

Laravel, get data from controller for display purposes

我想根据用户在表单中提供的数据,在 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]);
} 

以上代码按预期工作。我可以提供 url,单击 "Get" 后,我可以在表单下方看到找到的项目列表。但是,有些事情告诉我这不是正确的方法,因为整个页面都会刷新。我是对的(所以上面的代码不好)?如果是这样,是否有任何内置功能可以在不刷新的情况下显示获取的数据?我在官方 Laravel-form 页面上进行了搜索,但没有找到任何内容。

据我了解你的问题。

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

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