MVC маршрутизация, передача массива в качестве параметра (стиль Laravel / CodeIgniter) - PullRequest
0 голосов
/ 07 июня 2019

Я прохожу курс по PHP / MVC / OOP от Traversy Media, и я нахожусь в главе, которая создает маршрутизатор для простого социального приложения (начальная маршрутизация любого запроса через 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 голосов
/ 07 июня 2019

Часть, которая вас смущает, - это просто вызов функции.

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

Это можно было бы написать так

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

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

Вы вызываете функцию view и передаете ей два параметра. Edit String и массив, содержащий ключ post со значением переменной с именем post. Функция представления просто берет все значения в массиве и делает их доступными по их ключам в представлении.

Это означает, что вы можете в представлении сделать следующее

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

Передача Array в качестве параметра является обычным PHP и не имеет ничего общего с конкретной платформой. Array не нужно «имя», так же как 'edit' String не нужно имя.

...