Laravel代码设计:最佳实践

时间:2017-10-23 10:48:11

标签: php laravel

我想使用一个我有2个面板的网页。

第一个,在左侧,带有搜索按钮,并添加了x个最后元素的列表。 (Ajax将用于根据搜索栏输入编辑列表)

右边的第二个面板是所选元素的结果(所有信息)。 (默认情况下,它是第一个)

制作ajax时应首先更新第一个。但是,除非点击列表中的项目,否则第二个不得更改。

我想知道如何继续......

目前,我的控制器index()show()中有2个不同的功能。在索引视图中,我有@yield('show')并且在展示视图中@extends('index')

问题是我必须为每个函数检索:  列出所有元素和特定元素的完整数据,即使它之前已经加载过。这是由yield / extends引起的。

正因为如此,当在搜索栏中进行新搜索时,第二个面板会刷新,不再是我之前选择的那个

//Hospital controller
public function index()
{
    $hospitals = Hospital::orderBy('name')->paginate(15);
    $hospital = Hospital::orderBy('name')->first();
    return view('admin.hospitals.show', compact('hospitals' , 'hospital'));
}

public function show($id)
{
    $hospitals = Hospital::orderBy('name')->paginate(15);
    $hospital = Hospital::find($id);
    return view('admin.hospitals.show', compact('hospitals' , 'hospital' ));
}

index.blade.php

@foreach( $hospitals as $h )
    <li>
        <a href = "/admin/hospitals/{{ $h->id }}"><b>{{ $h->name }}</b></a>
    </li>
@endforeach
{{ $hospitals->links() }}

@yield('hospital-show')

show.blade.php

@extends('admin.hospitals.index')
@section('hospital-show')
    //Lot of infos here used by $hospital->myInfo
@endsection

我认为我的代码设计一开始就被仔细考虑了但是......我不知道该去哪里。

很抱歉,如果这对你来说显而易见,但我对laravel很新,我试图获得最佳实践

更多信息

第二个小组也是CRUD经理。因此可以通过此界面发布表单。

我不希望这里有技术解决方案,只是未来解决此类问题的一种方法。

也许我只需要拒绝这种功能,只需管理不同页面上的不同选项URI的|功能|和意见......

你们怎么看?

0 个答案:

没有答案