【问题标题】:Accessing Controllers methods for sidebar in Laravel在 Laravel 中访问侧边栏的控制器方法
【发布时间】:2018-08-16 19:57:11
【问题描述】:

我正在使用 Laravel 5.6 制作一个项目,目前我正在制作一个带有链接的侧边栏,以访问指定控制器的功能。 f.e.如果我在帖子刀片中,它将显示侧边栏的 PostsController 方法。

问题是每个控制器都有不同数量的方法,我不想把 10 种不同的侧边栏静态布局弄得一团糟。

有没有办法通过将控制器的所有方法返回到视图的功能来访问控制器方法?

或者我认为这是错误的。如果有人知道更好的解决方案,我会全力以赴。 :)

我知道我可以安装功能包,但在此之前我想知道有没有简单的解决方案。

编辑1:

get_class_methods($this) 返回以下值:

Returned Methods of a Controller

我可以添加一个验证器来检查“index”或“create”是否存在。猜猜我的问题已经解决了,谢谢所有回答的人。

编辑2:

转储返回方法的代码。

public function index()
{

    $events = Event::all();

    dd($controller = get_class_methods($this));

    return view('events.index', compact(['events', 'controller']));

}

【问题讨论】:

  • 控制器是一个类,可以使用“get_class_methods”函数获取所有方法。
  • 您可以通过提供完整的命名空间来创建类的对象

标签: php laravel view controller blade


【解决方案1】:

您可以使用“get_cass_methods”函数来获取控制器类上的所有方法

function index() {
  $methods = get_class_methods($this);
  return view('posts', compact('methods'));
}

如果你想过滤掉父类中的方法

function index() {
  $methods = array_diff(get_class_methods($this),get_class_methods(get_parent_class()));
  return view('posts', compact('methods'));
}

【讨论】:

  • 如果我以这种方式询问方法,它会返回一堆 Laravel 中内置的类。我会将返回消息更新为主要问题。
  • @TuomasTuokkola 你能分享你的代码示例吗?
  • 你想看代码的哪一部分?我可以将转储代码的代码更新到主帖。我已经检查了所有数据都可以查看。
  • @TuomasTuokkola 查看我的更新答案.. 它会过滤掉数组中继承的方法。
  • 谢谢!这是我在 stackoverflow 中的最佳体验。 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-08-02
  • 1970-01-01
  • 1970-01-01
  • 2023-03-22
  • 1970-01-01
  • 1970-01-01
  • 2014-01-11
相关资源
最近更新 更多