【问题标题】:Passing data from controller request to blade将数据从控制器请求传递到刀片
【发布时间】:2019-12-19 20:21:33
【问题描述】:

我在传递数据时遇到问题。 我在控制器中创建了一个获取请求
发送数据的函数路径 和刀片模板接收一些内容 但这不起作用:D

我尝试更改 web.php 几次,但我得到的最后一个错误是非静态方法

web.php

Route::get('/test2', function () {
return view('test2')->with('testGet@show');;
});

测试获取

namespace App\Http\Controllers;
use Illuminate\Http\Request;

class testGet extends Controller
{
  public function show(Request $request)
  {
    $data = $request -> input();
  } 
}

和 test2.blade.php

<body>
@php
    use App\Http\Controllers\testGet ;
    echo testGet::show();
@endphp
<div class="emptySpace"> {{$data}}</div>

我希望使用从 url 获取的数据加载刀片视图,我已经创建了视图,但现在我需要传递一些数据......有什么想法吗?

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    路线

    Route::get('/test2', 'testGet@show');
    

    现在,您可以像这样在控制器中使用 compact 发送变量:

    控制器

    public function show(Request $request)
    {
        $data = $request -> input();
        return view('test2', compact('data'));
    } 
    

    或

     public function show(Request $request)
    {
        $array['data'] = $request -> input();
        $array['data2'] = "test";
        $array['data3'] = [32,43,54];
        return view('test2', $array);
    
        //By this you can send multiple data 
    }
    

    现在,您可以像这样使用视图中的数据:

    查看

    <div class="emptySpace"> {{$data}}</div>
    

    【讨论】:

    • 同样的问题。非静态方法
    • 在修复 test.blade 错误后消失了......但是在我的刀片模板中键入 name=piotr i gto 错误后新的实现了 xD,例如:尝试获取非对象的属性“名称”我做了类似的事情 $data->name
    • @Piter $data 是数组而不是集合,您必须像 $data['name'] 一样访问
    【解决方案2】:
    namespace App\Http\Controllers;
    use Illuminate\Http\Request;
    
    class testGet extends Controller
    {
      public function show(Request $request)
      {
        $data = ['name'=>'apple','category'=>'fruits'];
        return view('test2',compact('data'));
    
       } 
    }
    
     // in your view 
    
    {{$data}}
    

    【讨论】:

      【解决方案3】:

      路线

      Route::get('/test2', 'testGet@show'); 
      

      转到控制器:testGet ->显示

      public function show(Request $request)
      {   
           $data = $request -> input();
           return view('test2', compact('data'));
      } 
      

      不要在 View 中导入任何东西.....只需添加您的 html 代码

      <div class="emptySpace"> {{$data}}</div>
      

      【讨论】:

        猜你喜欢
        • 2019-04-13
        • 2019-11-13
        • 2017-09-03
        • 2016-06-25
        • 1970-01-01
        • 1970-01-01
        • 2020-12-29
        • 1970-01-01
        • 2015-05-19
        相关资源
        最近更新 更多