Как передать переменную из одной функции в другую в 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;
}
но он тянет меня ошибка, как эта процедура должна быть выполнена правильно?
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();
// ...
}
В вашем случае есть два оператора для ссылки на это, оператор объекта и статический, оба определены вне метода. простой пример будет
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;
В этом случае мы использовали оператор объекта, см. Более подробную информацию здесь