在同一控制器laravel的不同功能中使用变量

时间:2017-05-17 15:45:02

标签: php laravel

我知道这个问题看起来很简单并且多次问过,但我尝试了所有可能的解决方案,似乎没有任何效果。所以请不要将其标记为重复,直到找到解决方案。所以这是问题, 我在tabloader函数中定义了一个变量$ msg_body。 我想在tabloader1函数中使用它,它位于同一个控制器中。

这里是代码和我尝试过的所有解决方案,下面是我的tabloader函数

public function tabloader(Request $request){
    $msg_body= Message::where('id', $request->id)->value('body');
    $msg_topic= Message::where('id', $request->id)->value('topic');

    $this->tabloader1($msg_body);
    //$name = $request->$msg_body;
    //$a = new RtrController();
    //$a->tabloader1();
    //Session::put('key', $msg_body);
    //$response = Response::make('Hello World');
    //return  $response->withCookie(Cookie::make('name', 'value', $msg_body));



     //DB::table('sendmessages')->insert(array('body1'=>$msg_body, 'phone_nos'=>'1111'));
    //foreach($item_nos as $item_no)
    //Sendmessage::insert(array('body1'=>$msg_body, 'phone_nos'=>'1234' ));  //'phone_nos'=>$item_no
    //endforeach

    //return view('adminCenter',compact('prod'));  

}

以下是我的tabloader1函数

public function tabloader1($msg_body){      

    $prod=Message::get()->all();

    $item_nos=DB::table('items')->pluck('phone_no');
    //dd($item_nos);

    $item_ids=DB::table('items')->pluck('id');
    //$name = Session::get('key');
    //$value = Cookie::get('name');

    //Sendmessage::create(array('body1' => $value,'phone_nos' => '11113'));

    DB::table('sendmessages')->insert(array('body1'=>$msg_body, 'phone_nos'=>'1111'));
    //foreach($item_nos as $item_no){
        //foreach($item_ids as $item_id){
            //DB::table('sendmessages')->whereId($item_id)->update(array('phone_nos'=>$item_no ));
            //DB::table('sendmessages')->insert(array('body1'=>$msg_body, 'phone_nos'=>'1111'));  





    return view('adminCenter',compact('prod'));  //here i want it to return to .. know the syntax? no

}

我正在使用该变量将其插入表sendmessages

,错误是 "在tabloader1函数中,缺少参数1。" 我已经尝试了各种解决方案,因为您可以在代码中看到注释行。 真的希望有一个解决方案,谢谢

1 个答案:

答案 0 :(得分:0)

试试这个:

public function tabloader(Request $request){
    $msg_body= Message::where('id', $request->id)->select(['body'])->first();
    $msg_topic= Message::where('id', $request->id)->select(['topic'])->first();

   return $this->tabloader1($msg_body);
}


public function tabloader1($msg_body=''){ // '' if empty      
    .
    .
    return view('adminCenter',compact('prod'));  //here i want it to return to .. know the syntax? no
}