I am writing system for players where I use Laravel freamwork (just for learn) and I have question for more experience developer. I have one function which return me some data to view. I use this function in 3 controllers (but i copy and paste this function to each Controller files) and can I just put this function in one file and then use it in these 3 controllers? How can I use the same function in diffrent controller without copy and past?
3条回答 默认 最新
- doucitao2944 2016-12-05 02:08关注
You can create Base Controller:
<?php namespace App\Http\Controllers; class BaseController { protected $playersRepository; public function __construct(PlayersRepository $playersRepository) { $this->playersRepository = $playersRepository; } }
Which is injected with a repository object:
<?php namespace App\Http\Controllers; class PlayersRepository { public function getPlayers() { return Player::all(); } }
Which has a common method, that can be used in more than one extended controller:
Games
<?php namespace App\Http\Controllers; class Games extends BaseController { public function index() { return view('games', ['players' => $this->playersRepository->getPlayers()]); } }
Matches
<?php namespace App\Http\Controllers; class Matches extends BaseController { public function show() { return view('matches', [ 'matches' => $matches, 'players' => $this->playersRepository->getPlayers() ]); } }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 用windows做服务的同志有吗
- ¥60 求一个简单的网页(标签-安全|关键词-上传)
- ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
- ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
- ¥100 为什么这个恒流源电路不能恒流?
- ¥15 有偿求跨组件数据流路径图
- ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
- ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
- ¥15 一直显示正在等待HID—ISP
- ¥15 Python turtle 画图