0

我有 Island 和 Fisher 的两个模型。我想使用数据表来显示岛屿名称而不是 (island_id) fisher_first_name 和 fisher_last_name

如数据表所示

岛屿 ID Fisher 名字 Fisher 姓氏

1 Dovecot Imap 2 乔恩·蒂姆

这是数据表列名称上显示岛屿 ID 的位置

这是我的两个模型关系

public function fishers(){
        return $this->hasMany(Fisher::Class);
   }

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

这是 FisherDatatable 中的 getColumns 函数,我需要使用它来将 island_id 更改为 island_names

 protected function getColumns()
    {
        return [

          'island_id'
            'fisher_first_name',
            'fisher_last_name',

        ];
    }

这也是从 FisherDatatable 中提取的,用于显示 Island 和 Fisher 关系

  public function query(Fisher $model)
    {
        return $model->newQuery()->with(['island']);
    }

这是我的控制器

namespace App\Http\Controllers;

use App\DataTables\FisherDataTable;
use App\Http\Requests;
use App\Http\Requests\CreateFisherRequest;
use App\Http\Requests\UpdateFisherRequest;
use App\Repositories\FisherRepository;
use App\Models\Island;
use Flash;
use App\Http\Controllers\AppBaseController;
use Response;

class FisherController extends AppBaseController
{
    /** @var  FisherRepository */
    private $fisherRepository;

    public function __construct(FisherRepository $fisherRepo)
    {
        $this->fisherRepository = $fisherRepo;
    }

    /**
     * Display a listing of the Fisher.
     *
     * @param FisherDataTable $fisherDataTable
     * @return Response
     */
    public function index(FisherDataTable $fisherDataTable)
    {
        return $fisherDataTable->render('fishers.index');
    }

    /**
     * Show the form for creating a new Fisher.
     *
     * @return Response
     */
    public function create()
    {
        $islands = Island::pluck('island_name','id');
        return view('fishers.create')->with('islands',$islands);
    }

    /**
     * Store a newly created Fisher in storage.
     *
     * @param CreateFisherRequest $request
     *
     * @return Response
     */
    public function store(CreateFisherRequest $request)
    {
        $input = $request->all();

        $fisher = $this->fisherRepository->create($input);

        Flash::success('Fisher saved successfully.');

        return redirect(route('fishers.index'));
    }

    /**
     * Display the specified Fisher.
     *
     * @param  int $id
     *
     * @return Response
     */
    public function show($id)
    {
        $fisher = $this->fisherRepository->find($id);

        if (empty($fisher)) {
            Flash::error('Fisher not found');

            return redirect(route('fishers.index'));
        }

        return view('fishers.show')->with('fisher', $fisher);
    }

    /**
     * Show the form for editing the specified Fisher.
     *
     * @param  int $id
     *
     * @return Response
     */
    public function edit($id)
    {
        $fisher = $this->fisherRepository->find($id);
        $islands = Island::pluck('island_name','id');
        if (empty($fisher)) {
            Flash::error('Fisher not found');

            return redirect(route('fishers.index'));
        }

        return view('fishers.edit')
        ->with('fisher', $fisher)
       -> with('islands', $islands);
    }

    /**
     * Update the specified Fisher in storage.
     *
     * @param  int              $id
     * @param UpdateFisherRequest $request
     *
     * @return Response
     */
    public function update($id, UpdateFisherRequest $request)
    {
        $fisher = $this->fisherRepository->find($id);

        if (empty($fisher)) {
            Flash::error('Fisher not found');

            return redirect(route('fishers.index'));
        }

        $fisher = $this->fisherRepository->update($request->all(), $id);

        Flash::success('Fisher updated successfully.');

        return redirect(route('fishers.index'));
    }

    /**
     * Remove the specified Fisher from storage.
     *
     * @param  int $id
     *
     * @return Response
     */
    public function destroy($id)
    {
        $fisher = $this->fisherRepository->find($id);

        if (empty($fisher)) {
            Flash::error('Fisher not found');

           return redirect(route('fishers.index'));
        }

        $this->fisherRepository->delete($id);

        Flash::success('Fisher deleted successfully.');

        return redirect(route('fishers.index'));
    }
}
4

1 回答 1

1

只需将名称、标题和数据数组添加到您的 getColumns 方法中

protected function getColumns()
    {
   return [
            ['name'=>'dropdown_label','title'=>'new name of label','data'=>"dropdown_label"],
            ['name'=>'dropdown_value','title'=>'new name of dropdwon value','data'=>"dropdown_value"],
            'active'
          ];
            
    }
于 2020-07-02T14:44:08.870 回答