Как передать переменную из одной функции в другую в laravel?


сердечное приветствие товарищи, у меня есть следующие сомнения по этому поводу, предположим, что у меня есть следующие функции в одном из моих контроллеров:

public function DatosEstudio(Request $request){

$ConsultaActividades=DB::table('actividades')->select('nombre_actividad')->where('nombre_actividad','like','1%')->get();

}

 public function Recibir(Request $request){


}

Как я могу передать переменную Запросактивности другой функции (получить), которая находится в том же контроллере?, в функции получить я также использую request, так как эта функция также должна получить несколько данных по форме. я пытаюсь сделать это следующим образом.

public function Recibir(Request $request)
{

   $var= $this->DatosEstudio($consultaActividades);
return $consultaActividades;

}  

но он тянет меня ошибка, как эта процедура должна быть выполнена правильно?

Author: Shaz, 2018-04-29

2 answers

По соглашениям о дизайне неправильно вызывать другой метод, включающий Request, в этом порядке эти два метода должны взаимодействовать другим методом private или protected, или немного дальше, моделью, репозиторием или службой, которая вызывается из обоих методов, или в зависимости от того, что предполагается сделать, передать часть кода второго метода на другой, более абстрактный слой.

Первый вариант суммируется в:

protected function getData()
{
    return DB::table('actividades')->select('nombre_actividad')->where('nombre_actividad','like','1%')->get();
}


public function Recibir(Request $request) {
    $var = $this->getData();
    // ...
} 
 0
Author: Shaz, 2018-04-29 19:58:59

В вашем случае есть два оператора для ссылки на это, оператор объекта и статический, оба определены вне метода. простой пример будет

class SayIt
{

 public $var = NULL;

  public function getData($var)
  {
    return $this->var = $var;
  }

}
// ahora podemos acceder al objeto desde otro archivo previamente llamando al archivo y su localización 
$op = new SayIt();
$op->getData("My name is Outman");
echo $op->var;

В этом случае мы использовали оператор объекта, см. Более подробную информацию здесь

 1
Author: outman, 2018-04-29 23:06:40