如何向所有具有不同DI,视图和参数的控制器共享一种方法?我需要这样的东西:
public function method(Model $model)
{
$baseData = [
'model' => $model,
'route' => route('$route', [$param => $model]),
];
return view($view);
}
Run Code Online (Sandbox Code Playgroud)
所有控制器App\Http\Controllers\Controller都可以扩展,因此您可以将其放置在此处
<?php
namespace App\Http\Controllers;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Routing\Controller as BaseController;
class Controller extends BaseController
{
use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
public function method(Model $model, $route, $param, $view)
{
// Declared but not used
$baseData = [
'model' => $model,
'route' => route($route, [$param => $model]),
];
return view($view);
}
}
Run Code Online (Sandbox Code Playgroud)
并与 $this->method()
例如在 HomeController
<?php
namespace App\Http\Controllers;
use App\User;
class HomeController extends Controller
{
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('auth');
}
/**
* Show the application dashboard.
*
* @return \Illuminate\Contracts\Support\Renderable
*/
public function index()
{
$user = User::first();
return $this->method($user, 'home', 'user', 'welcome');
}
}
Run Code Online (Sandbox Code Playgroud)
现在访问domain.tld/home 将返回welcome视图
希望这可以帮助
| 归档时间: |
|
| 查看次数: |
42 次 |
| 最近记录: |