Как передать переменную между методами в контроллере - PullRequest
0 голосов
/ 01 октября 2019

Я просто пытаюсь передать переменную между 1 методом другому в том же контроллере Laravel. Я потратил часы, пытаясь понять это, и мне не повезло. Я уверен, что это очень просто. В других местах есть похожие ответы, но я не могу заставить их работать, поэтому хочу сделать это действительно простым, чтобы я мог понять это.

В приведенном ниже коде я просто хочу добавить выходную переменную $ (вв этом случае, число 1).

Например, допустим, у меня есть следующие методы в контроллере.

public function index()
{
$variable = 1;
}

public function show()
{
dd($variable);
}

Я просто хочу, чтобы функция show выводила 1 на выходе dd, как инициализировано виндексная функция. Может ли кто-нибудь помочь мне. Как я уже сказал, я уверен, что это легко, просто не могу понять.

Ответы [ 4 ]

7 голосов
/ 01 октября 2019

Тип 1 : Вы можете передать с помощью определенную переменную .

protected $variable;
public function index() {
    $this->variable= 1;
}

public function show() {
    echo $this->variable;
}

Тип 2 : Другой способ вызова метод от одного метода к другому -

public function index() {
    $variable= 1;
    $this->show($variable);
}

public function show($id) {
    echo $id;
}

Тип 3 : Вы также можете использовать сеанс .

public function index() {
    $variable= 1;
    session()->set('variable', $variable);
}

public function show() {
    $variable = session()->get('variable');
    dd($variable);
}
4 голосов
/ 01 октября 2019

Вы можете определить переменную в классе контроллера, которая должна иметь область видимости в этом классе.

private $variable;

Тогда в любой функции вы можете использовать эту переменную с $this ключевое слово

$this->variable = 1;

Обновление

Возможно, вам нужен конструктор для инициализации переменной.

public function __construct()
{
    $this->variable = 1;
}
2 голосов
/ 01 октября 2019

Случай 1: определить переменную вне функций:

protected $variable;
public function index()
{
$this->variable = 1;
}

public function show()
{
dd($this->variable);
}

Случай 2: Вы задаете переменную как параметр во втором методе, а затем вызываете свой метод из первого метода, с которым вы работаете

public function index()
{
$variable = 1;
$this->show($variable);
}

public function show($variable)
{
dd($variable);
}
1 голос
/ 01 октября 2019

то, как вы написали код, неверно

public function index()
{
$variable = 1;
}

public function show()
{
dd($variable);
}

https://www.geeksforgeeks.org/what-is-the-difference-between-public-private-and-protected-in-php/

Необходимо очистить с помощью спецификаторов Access. определить перед использованием в функции или использовать в конструкции с $ this. Или вызовите вторую функцию из первой функции с аргументом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...