【问题标题】:In laravel in controller pass variable to one function to another function在控制器中的 laravel 中,将变量传递给一个函数到另一个函数
【发布时间】:2019-05-01 20:53:56
【问题描述】:

我在 Laravel 中编码,如何将变量传递给 Controller 中的另一个函数,

在控制器文件中我有 2 个这样的函数

public function hiringEmployee(Request $request)
{
    $hireEmployee = new EmployeeHire();
    $hireEmployee->candidateName = $request->get('candidateName');

    $file = $request->file('file');
    $name = $file->getClientOriginalName();
    $file->move('uploads/cv', $name);

    $hireEmployee->file = $name;
    $hireEmployee->save();

    return redirect('list-candidate');
}


public function assignInterview(Request $request, $id)
{
    $assignInterview = EmployeeHire::find($id);
    $interview = $request->get('interview');
    $assignto = $request->get('assignto');
    $dateTime = $request->get('dateTime');
    $note = $request->get('note');

    $interviewDetails = ([
        'interview' => $interview,
        'assign_to' => $assignto,
        'date_time' => $dateTime,
        'note'      => $note,
    ]);

    $assignInterview->interview_details = $interviewDetails;
    $assignInterview->save();


    Mail::send('emails.hireemployee', ['candidateName' => $candidateName], function ($message) use ($assignto, $name) {
        $message->subject('Interview For New Candidate!');
        $message->from('hrm@wcg.com', 'HRM');
        $message->to($mail);
        $message->attach('uploads/cv/'.$name);
    });

    return redirect('list-candidate');
}

我想在来自hiringEmployee() 函数的assignInterview() 函数中使用$candidateName$name

我该怎么做?

【问题讨论】:

  • 如果以下帖子之一回答了您的问题请您将其标记为已接受 :) 谢谢。

标签: php laravel eloquent controller


【解决方案1】:

您将无法直接从另一个函数中使用 $name$candidateName,因为它们看起来像是针对两个不同的请求,但是,看起来您正在将该数据保存到数据库中'正在您的hiringEmployee() 方法中创建一个新的EmployeeHire,因此您应该已经可以在您的assignInterview() 方法中访问该信息:

$assignInterview = EmployeeHire::find($id); // this is where you loading the model

$candidateName = $assignInterview->candidateName;
$name  = $assignInterview->file;

【讨论】:

    【解决方案2】:

    在您的情况下,您可以使用两种方法:

    #1

    使用会话变量如下:

    Session::put('candidateName', $candidateName);
    

    然后:

    $value = Session::get('candidateName');
    

    #2

    使用类属性:

    class acontroller extends Controller
    {    
        private $classCandidateName;
    
    }
    

    【讨论】:

    • 我在控制器类中编写了整个 assignInterview() 函数???
    • 在你有两个函数的Controller中,在你的类中添加两个属性,之后你可以调用并使用属性中的值。如果您想再次调用函数,您可以从数据库中检索数据并使用它们。
    【解决方案3】:

    你可以试试这样的:

    public function hiringEmployee(Request $request)
    {
        $hireEmployee = new EmployeeHire();
        $hireEmployee->candidateName = $request->get('candidateName');
    
        $file = $request->file('file');
        $name = $file->getClientOriginalName();
        $file->move('uploads/cv', $name);
    
        $hireEmployee->file = $name;
        $hireEmployee->save();
    
        return redirect('list-candidate');
    }
    
    
    public function assignInterview(Request $request, $id)
    {
        $assignInterview = EmployeeHire::find($id);
         if(is_null($assignInterview)){
             return redirect()->back()->withErrors(['Error message here']);
         }
    
        $interviewDetails = ([
            'interview' => $request->get('interview'),
            'assign_to' => $request->get('assignto'),
            'date_time' => $request->get('dateTime'),
            'note'      => $request->get('note'),
        ]);
    
        $assignInterview->interview_details = $interviewDetails;
        $assignInterview->save();
    
    
        Mail::send('emails.hireemployee', ['candidateName' => $assignInterview->candidateName], function ($message) use ($assignto, $assignInterview->file) {
            $message->subject('Interview For New Candidate!');
            $message->from('hrm@wcg.com', 'HRM');
            $message->to($mail);
            $message->attach('uploads/cv/'.$assignInterview->file);
        });
    
        return redirect('list-candidate');
    }
    

    请您小心使用 find($id)。如果为null,则会报错。

    玩得开心!

    【讨论】:

      猜你喜欢
      • 2016-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多