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

时间:2019-06-07 07:34:16

标签: php laravel codeigniter laravel-5 php-7

我正在遍历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]);
  }
}

此类中有一些更简单的内容,但是我不确定['post' => $post]部分。

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

这是$post,是第二个实际=> $post子数组。我只是一点都不明白。

我以前开始学习Laravel(现在将其全部跳过),而我也一直陷于此类问题。

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

在此先感谢您提供的任何信息。

1 个答案:

答案 0 :(得分:0)

您所困惑的只是一个函数调用。

$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不需要“名称”,就像'edit' String不需要名称一样。