Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP: Laravel
Войти
Регистрация
Восстановить пароль
 
Landser
57 / 7 / 4
Регистрация: 18.04.2009
Сообщений: 379
1

Передать переменную из одного метода контроллера в другой

14.05.2019, 21:58. Просмотров 364. Ответов 4
Метки нет (Все метки)

Доброго времени суток. Использую Laravel 5.8.17, Apache 2.4, Windows7. Хочу передать переменную из одного public метода в другой:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
 
class TestController extends Controller
{
    private $x;
 
    public function index()
    {
        $this->x ='111';
        echo '$this->x= '. $this->x;
    }
 
    public function message()
    {
        echo  '$this->x= '. $this->x;
    }    
}
когда вызываю метод index - выводит $this->x=111, когда вызываю метод message- выводит $this->x= и не видит значение из метода index. Все clear команды и composer dump-autoload выполнял.
Наверняка кто-то пытался такое или подобное делать. В оригинале пытаюсь передать из одного метода в другой результат запроса, так что в сессию его не хочу класть да и в Cache тоже...
Спасибо.
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.05.2019, 21:58
Ответы с готовыми решениями:

Передать переменную из одного метода в другой
Есть класс. В нем 2 метода: пусть будут private void textBox1_TextChanged(object sender,...

Как передать переменную из одного метода в другой?
Возник вопрос. Как передать переменную из одного метода в другой? У меня есть два метода. Нужно...

Как передать переменную с одного метода в другой
Есть у меня два метода, вот первый public function get_station_page($page) { ...

Как выполнить редирект с одного метода контроллера в другой, без пересоздания контроллера
Я делаю в одном из методов RedirectToAction() , в результате чего, перед перенаправлением...

Передать переменную с одного файла в другой
У меня есть 2 файла pr1 и pr2, в pr1 создаю переменную $a, которой зайдаю значения rand(1,5). Как...

4
tarasalk
1460 / 913 / 349
Регистрация: 13.06.2013
Сообщений: 3,174
15.05.2019, 17:36 2
Если это разные запросу к серверу, то конечно там ничего не сохраняется. В PHP каждый запрос с нуля стартует.
Передавайте данные вместе с запросом: в ссылке, в теле, в заголовках...
1
Landser
57 / 7 / 4
Регистрация: 18.04.2009
Сообщений: 379
15.05.2019, 17:59  [ТС] 3
tarasalk, спасибо за ответ!
Вы пишите:
Если это разные запросу к серверу, то конечно там ничего не сохраняется
не совсем понимаю, что Вы имеете здесь ввиду.

Передавайте данные вместе с запросом: в ссылке, в теле, в заголовках...
в методе index я получаю коллекцию - результат поиска - 10 тыс. записей например, и хочу передать её в метод message, который у меня сработает при нажатии кнопки "Экспортировать результат поиска в EXcel"
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Post;
use App\Exports\SearchExport;
use Maatwebsite\Excel\Facades\Excel;
 
class TestController extends Controller
{
    private $x;
 
    public function index(Request $ request)
    {
       $result= Post::where('title',$request->get('title'))->get();//для примера
       $this->x=$result;
    }
 
    public function message()
    {
        return Excel::download(new SearchExport($this->x), 'export.xlsx');
    }    
}
0
tarasalk
1460 / 913 / 349
Регистрация: 13.06.2013
Сообщений: 3,174
15.05.2019, 20:15 4
Цитата Сообщение от Landser Посмотреть сообщение
в методе index я получаю коллекцию - результат поиска - 10 тыс. записей например
Это первый запрос.
Цитата Сообщение от Landser Посмотреть сообщение
метод message, который у меня сработает при нажатии кнопки "Экспортировать результат поиска в EXcel"
Это второй запрос.

Переменные между ними не сохраняются. Странное такое не знать.
1
Landser
57 / 7 / 4
Регистрация: 18.04.2009
Сообщений: 379
15.05.2019, 21:02  [ТС] 5
А, это понятно, конечно не сохраняются. я Вас не так понял)
Попытался сделать так:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
class TestController extends Controller
{
    private $x;
    public function search(Request $ request)
    {
       $result= Post::where('title',$request->get('title'))->get();//для примера
       $this->x=$result;
       return $this->x;
    }
   public function index (Request $request)
   {
      $this->search($request);
      $r=$this->x;
      $request->flash();
      return view ('search.result','r'=>$r);
   }
    public function message($request)                          
    {   
         $request->request->add($request->old());    
         $this->search($request);
         $r=$this->x;
        return Excel::download(new SearchExport($r, 'export.xlsx');
    }    
}
- так работает, как мне надо, но получается я два раза поисковый запрос к БД выполняю, сначала при отображении во вьюшке, а потом его же при экспорте в Excel...
0
15.05.2019, 21:02
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.05.2019, 21:02

Передать переменную из одного скрипта в другой
Всем привет. есть скрипт: #!/bin/bash baza=/srv/test #Файл, с которого берем переменную IP...

Передать переменную из одного файла JS в другой
Здравствуйте Подскажите, пожалуйста, как передать переменную из одного файла JS в другой файл JS ...

Передать переменную из одного файла в другой
Здравствуйте, save_dan_o_pol-нужны из этого файла переменные $familia и $tema перенести в файл...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru