为了账号安全,请及时绑定邮箱和手机立即绑定

运行一个函数并发布请求 Laravel

运行一个函数并发布请求 Laravel

PHP
森林海 2023-04-21 16:40:23
Source 代码 https://github.com/jslack2537/PHP-Calculator我在运行我的计算器应用程序的业务逻辑时遇到问题,同时将结果保存到我的数据库中,它们独立工作,只是不同时。我不确定我是否应该组合我的两个控制器或这里的什么。关于组合它们或使流程按原样工作的最佳方式的任何建议。    <?phpnamespace App\Http\Controllers;use App\Result;use Illuminate\Http\Request;class ResultController extends Controller{    public function postResultCreate(Request $request)    {   $result = 2;         $post = new Result([             'first_number' => $request->input('first'),             'second_number' => $request->input('second'),             'operator' => $request->input('operator'),             'sum' => $result         ]);        $post->save();        return redirect('/')->with('info', 'Answer: ' .$result);    }}我的第二个控制器具有基本的数学逻辑<?phpnamespace App\Http\Controllers;use Illuminate\Http\Request;class CalculatorController extends Controller{    public function calculatefunc(Request $request)    {        $operator = $request->input('operator');        $first_number = $request->input('first');        $second_number = $request->input('second');        $result = 0;        if ($operator == "plus")        {            $result = $first_number + $second_number;        }        elseif($operator == "minus")        {            $result = $first_number - $second_number;        }        elseif($operator == "multiply")        {            $result = $first_number * $second_number;        }        elseif($operator == "divide")        {            $result = $first_number / $second_number;        }        else{            $result= 0;        }        return redirect('/')->with('info', 'Answer: ' .$result);    }}
查看完整描述

1 回答

?
慕容708150

TA贡献1831条经验 获得超4个赞

我认为您应该将这两个课程结合起来。


尝试这个:


class CalculatorController extends Controller

{

    public function calculatefunc(Request $request)

    {

        $operator = $request->input('operator');

        $first_number = $request->input('first');

        $second_number = $request->input('second');

        $result = $this->calculateByOperator($operator, $first_number, $second_number);


        return redirect('/')->with('info', 'Answer: ' . $result);

    }


    private function calculateByOperator($operator, $first_number, $second_number)

    {

        if ($operator == "plus") {

            $result = $first_number + $second_number;

        } elseif ($operator == "minus") {

            $result = $first_number - $second_number;

        } elseif ($operator == "multiply") {

            $result = $first_number * $second_number;

        } elseif ($operator == "divide") {

            $result = $first_number / $second_number;

        } else {

            $result = 0;

        }


        return $result;

    }


    public function postResultCreate(Request $request)

    {

        $first_number = $request->input('first');

        $second_number = $request->input('second');

        $operator = $request->input('operator');

        $result = $this->calculateByOperator($operator, $first_number, $second_number);

        $post = new Result([

            'first_number' => $first_number,

            'second_number' => $second_number,

            'operator' => $operator,

            'result' => $result

            // it should be result not sum because it will depend on your operator. you can also use operator here

        ]);

        $post->save();

        return redirect('/')->with('info', 'Answer: ' . $result);

    }

}


查看完整回答
反对 回复 2023-04-21
  • 1 回答
  • 0 关注
  • 73 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信