Laravel-使用变量重定向并将其显示在视图文件中

时间:2018-05-21 09:39:59

标签: php laravel laravel-5

我有一个控制器

 public function store(Request $request)
{if ($request->input('asc')){
                $image = PropertyUser::where('user_id', '=', Auth::user()->id)->get();
                foreach($image as $property)
                {
                    $id = $property->property_id;
                }
                $image_ = Image::where('property_id', $id)->sortBy('description')->get();
                return redirect('settings/photos');

如何使用$image_变量重定向并将其显示在我的视图文件中

@foreach ($image_ as $images)
            <div class="image-warp"><img src="{{$images->filename}}"
                                         style="width:100px;height:100px;"><br/><span style="color: #1b1e21">{{$images->description}}</span>
            </div>
        @endforeach

8 个答案:

答案 0 :(得分:2)

你应该试试这个:

public function store(Request $request)
{if ($request->input('asc')){
                $image = PropertyUser::where('user_id', '=', Auth::user()->id)->get();
                foreach($image as $property)
                {
                    $id = $property->property_id;
                }
                $image_ = Image::where('property_id', $id)->sortBy('description')->get();
                return view('yourfolder.yourviewfile',compact('image_'));

更新了答案

use Redirect;

public function store(Request $request)
{if ($request->input('asc')){
                $image = PropertyUser::where('user_id', '=', Auth::user()->id)->get();
                foreach($image as $property)
                {
                    $id = $property->property_id;
                }
                $image_ = Image::where('property_id', $id)->sortBy('description')->get();

                Redirect::to('settings/photos?image_='. $image_);

答案 1 :(得分:2)

您可以使用compact函数将其传递给视图并通过名称引用它。

return redirect('folder.name', compact('variableName');
return redirect()->route('folder.name', [$image]);

答案 2 :(得分:1)

向您的视图发送一系列变量:

return view('folder.viewfile', array(
    'image_' => $image_,
    'someother_variable' => $somevar,
));

答案 3 :(得分:1)

您可以尝试使用以下代码

        return view('settings/photos')->with(['image' =>  $image_]);

答案 4 :(得分:1)

为什么你使用像这个$ image_这样的变量,你可以像使用$ image或$ whatEver

一样使用它
return view('folder.viewfile', compact('image'));

现在您可以在视图文件上将此变量用作$ image。

答案 5 :(得分:1)

您也可以使用以下语法发送变量

return view('viewfile')->with('card',$card)->with('another',$another);

您可以使用重定向方法发送数据。这些数据将存储在Session Class中。

return redirect('url')->with('message',$message);

如下所示

Session::get('variableName');
Session::get('message');

答案 6 :(得分:1)

我发现自己也遇到了同样的问题,并在你们的帮助下解决了:)

在完整示例中,mi代码如下所示:

mi FormCreate.php视图从上一页获取ID,因此在此示例中,不带掩码的URL为“ FormumariosCreate / 16”,其中ID为= 16:

表格:

<form method="post" action="{{ route('FormulariosStore2', $Formularios->idFormularios ) }}"> // is importan add the id on the rute 
          @csrf

<input type="text" name="textoPregunta" required="required" />

<button href="" class="btn btn-primary pull-right">Crear Nueva Pregunta</button>
</form>

在web.php中进行轮巡:

Route::get('/FormulariosStore2/{idFormularios}', 'HomeController@FormulariosStore2')->name('FormulariosStore2');
Route::post('/FormulariosStore2/{idFormularios}', 'HomeController@FormulariosStore2')->name('FormulariosStore2');

和控制键:

   public function FormulariosStore2(Request $request,$id )
    {
    $validatedData = $request->validate([
'textoPregunta' => 'required|max:255',
     ]);

$ProyectoPreguntasF=ProyectoPreguntas::create($validatedData);

$Formularios = Formularios::findOrFail($id); 

return redirect()->route('FormulariosCreate', $Formularios)->with('success','la operacion fue correcta.');
    } 

然后将其重定向到ID为常规链接的rute“ FormulariosCreate”,希望它可以为答案添加一些内容

答案 7 :(得分:1)

在您的控制器功能中执行此操作:

"\{[^\}]+\}"

在视图中很简单:

#!/usr/bin/env python3

import os
import time
from selenium import webdriver
from selenium.webdriver.chrome.options import Options

IMG_DIR = '/images/'
if not os.path.exists(IMG_DIR):
  os.makedirs(IMG_DIR)

options = Options()
options.add_argument("--headless")
options.add_argument("--no-sandbox")
options.add_argument("--disable-setuid-sandbox")
options.add_argument("--window-size=1920,1080")

prefs = {"download.default_directory" : IMG_DIR}
options.add_experimental_option("prefs",prefs)

driver = webdriver.Chrome(options=options, executable_path='chromedriver')

driver.get('https://www.thinkbroadband.com/download')

#Find the Extra Small file on port 80
download_button = driver.find_element_by_xpath('//*[@id="main-col"]/div/div/div[8]/p[2]/a[1]')

driver.execute_script("arguments[0].scrollIntoView();", download_button)
download_button.click()
time.sleep(10)
driver.save_screenshot('{}page.png'.format(IMG_DIR))

driver.get('chrome://downloads')
time.sleep(10)
driver.switch_to.window(driver.window_handles[-1])
driver.save_screenshot('{}downloads.png'.format(IMG_DIR))

driver.close()
driver.quit()