我尝试使用with
:
return redirect('cabinet/result')->with('user', $client->unique_code)->with('fio', $client->name.' '.$client->secondname. ' '.$client->patronymic);
然后我将其显示为:
{{ session('fio') }} {{ session('unique_code') }}
它没有显示任何内容
答案 0 :(得分:3)
首先,当您使用方法'with'将数据传递给视图时,它不会存储在会话中,它只是作为一个变量提供,该视图与重定向后加载的视图具有相同的名称的地方。
您有两种选择:
您可以将一组数据传递给视图:
return view('greetings', ['name' => 'Victoria', 'last_name' => 'Queen']);
正如您在{root} /vendor/laravel/framework/src/Illuminate/View/View.php
中实现该方法的方式所见/**
* Add a piece of data to the view.
*
* @param string|array $key
* @param mixed $value
* @return $this
*/
public function with($key, $value = null)
{
if (is_array($key)) {
$this->data = array_merge($this->data, $key);
} else {
$this->data[$key] = $value;
}
return $this;
}
该方法接受键值对或数组。此数组的所有键都将在视图中可用,该视图将作为具有相同名称的php变量加载(当然,您需要将美元符号附加到视图中的调用)。因此,在“问候”视图中,您将检索它们:
$variable1 = {{ $name }}
$variable2 = {{ $last_name }}
您可以使用{root} /vendor/laravel/framework/src/Illuminate/Session/Store.php中的flashInput方法执行相同的操作:
/**
* Flash a key / value pair to the session.
*
* @param string $key
* @param mixed $value
* @return void
*/
public function flash($key, $value)
{
$this->put($key, $value);
$this->push('_flash.new', $key);
$this->removeFromOldFlashData([$key]);
}
你会这样做:
$request->session()->flashInput('flashData' => ['key1' => value1, 'key2' => value2]);
这里的区别在于数据不能作为加载视图的变量。相反,它们将存储在会话中的关联数组中,您将以这种方式检索存储的值:
$variable1 = {{ session('flashData['key1']) }}
$variable2 = {{ session('flashData['key2']) }}
资源
如果您认为这解决了您的问题,请将答案标记为已接受:)
答案 1 :(得分:1)
首先确保您的查询返回数据。
在我的项目中,我用简单的方法来做。
$user = $client->unique_code; //now user has the code
$fio = $client->name.' '.$client->secondname. ' '.$client->patronymic;
//please make sure this returns your indented result.
return redirect('cabinet/result')->with('user', $user)->with('fio',$fio );
我希望这会奏效,
答案 2 :(得分:1)
试试这段代码:
$user = 'user';
$fio = 'fio';
return redirect('cabinet/result')
->with('user', $user)
->with('fio', $fio);
对于视图:
{{ Session::get('user') }} {{ Session::get('fio') }}