简体   繁体   English

如何修复laravel 5.7中未定义的变量ID错误

[英]How to Fix Undefined Variable id error in laravel 5.7

M working on a solution where by i need to pass data from controller to view, Based on the id. M正在研究解决方案,我需要将数据从控制器传递到视图,基于id。

I've tested each variable one by one for see if there is actual data contained in those variables. 我逐个测试了每个变量,看看这些变量中是否包含实际数据。

one-by-one produces all the values required and as soon as i comment out the var_dumps(). 逐个产生所需的所有值,并且一旦我注释掉var_dumps()。 Throws an Undefined index error. 引发未定义的索引错误。

Please See code below: 请参阅以下代码:

View 视图

<td>
   <a href="view-campaign/{{$item->id}}" class="btn btn-success mb-2"
      data-toggle="tooltip" title="view campaign">                            
        <i class="fa fa-eye"></i>
   </a>
</td>

Controller 调节器

public function viewCampaign($id){

        //return var_dump($id);

        $img = null;

        //firebase configs and send to firebase
        $serviceAccount = ServiceAccount::fromJsonFile(__DIR__.'/serviceKey.json');
        $firebase = (new Factory)
            ->withServiceAccount($serviceAccount)
            ->withDatabaseUri('https://projectName.firebaseio.com/')
            ->create();

            $database = $firebase->getDatabase();

            $ref = $database->getReference('CampaignCollection')->getValue();

            foreach($ref as $key){
                $item = $key['id'];
                //return var_dump($item); 
                $poster = $key['Poster'];
                //return var_dump($poster); 
                if($item = $id){ 

                    //return '1';
                    $img = $poster; 
                    //return var_dump($poster);
                }else{
                    return '0';
                }
             }
        return view('view-campaign')->with('img',$img);
    }

Route 路线

Route::get('view-campaign/{id}','CampaignController@viewCampaign');

View::Results 查看结果

@extends('layouts.layout')

@section('content')
<div class="col-md-12">
        <div class="col-md-12 panel">
            <div class="col-md-12 panel-heading">
                <h4>View Campaign:</h4>
            </div>
            <div id="imgContainer" class="col-md-12 panel-body">
               <a href="/listCampaign" class="btn btn-danger mb-2" style="margin-bottom: 15px"><i class="fa fa-arrow-circle-left"></i></a>
               @if(isset($img))
                  <div  align="center">
                    <img src="{{($img)}}" />
                  </div>
                @else
                  no data 
                @endif

            </div>    
        </div>
</div>
@endsection

Goal is to get the base64 code to pass to the view. 目标是将base64代码传递给视图。

Try replacing your foreach with the following code: 尝试使用以下代码替换foreach:

foreach($ref as $k1 => $key){
                $item = $key->id; //change over here
                //return var_dump($item); 
                $poster = $key->Poster;  //change over here
                //return var_dump($poster); 
                if($item == $id){ //change over here

                    //return '1';
                    $img = $poster; 
                    //return var_dump($poster);
                }else{
                    return '0';
                }
             }

I reckon, you would also have to update the function signature to look something like following: 我想,您还必须更新函数签名,如下所示:

public function viewCampaign(Request $request , $id){
            //your code
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM