MVC 路由,将数组作为参数传递(Laravel / CodeIgniter 样式)

MVC routing, passing array as parameter (Laravel / CodeIgniter style)

我正在学习 Traversy Media 的 PHP / MVC / OOP 课程,我正在学习为简单社交应用创建路由器的章节(任何请求的初始路由 domain.com/index.php ).

此人谈到将数组作为参数传递,但我不明白这是如何工作的:

class Posts {
   public function edit($id) {
      $post = $this->postModel->fetchPost($id); 
      $this->view('edit', ['post' => $post]);
  }
}

这个 class 中有一些更简单的东西,但我只是不确定 ['post' => $post] 部分。

我不明白这种语法是如何工作的,比如一个又一个符号。这是基于已经内置到某种框架中的东西吗(他这里没有这样的东西,这是他的,这是他从头开始构建它的第一章)。我的意思是,我会想象数组就像变量中的 $array,这是方括号中的参数,那么这里的数组名称是什么?

这是$post并且是第二个实际=> $post一个子数组。我根本不明白。

我之前开始学习 Laravel(暂时跳过这一切),但我也一直被这些事情困住。

我的意思是,这是否只是与框架相关(不是真正的常规程序 PHP),就像已经在更深层次上编码并且我们与之相关的东西?

提前感谢您提供我可以获得的任何信息。

您感到困惑的部分只是一个函数调用。

$this-view('edit',['post' => $post]);

可以这样写

$dataYouWantToPassToTheView = ['post' => $post];

$this->view('edit', $dataYouWantToPassToTheView);

您正在调用函数 view,并向其传递两个参数。一个 Edit 字符串和一个数组,其中包含一个键 post,其值为一个名为 post 的变量。视图函数简单地获取数组中的所有值,并通过它们在视图中的键使它们可用。

这意味着您可以在视图中执行以下操作

<span>This is post id: {{ $post->id }}</span>

将数组作为参数传递是常规的PHP,与特定框架无关。 Array 不需要 "name",就像 'edit' String 不需要名字一样。