Сложение двух чисел

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Закрыто
Solutions
Сообщения: 93
Зарегистрирован: 2014.01.09, 13:23
Откуда: Казахстан. ВКО. Усть-Каменогорск

Сложение двух чисел

Сообщение Solutions » 2017.04.23, 11:24

Доброго времени суток всем, хочу получить от пользователя два числа, сложить их и вернуть ему обратно, помогите пожалуйста это реализовать, спасибо!

модель

Код: Выделить всё

<?php

namespace frontend\models;

use Yii;
use yii\base\Model;

/**
 * ContactForm is the model behind the contact form.
 */
class Calculations extends Model
{
    public $a;
    public $b;
    public $sum;


    /**
     * @inheritdoc
     */
    public function rules()
    {
        return [
            // name, email, subject and body are required
            [['a', 'b'], 'required'],
            [['a', 'b'], 'integer'],
        ];
    }

    /**
     * @inheritdoc
     */
    public function attributeLabels()
    {
        return [
            'a' => 'Цифра А',
            'b' => 'Цифра Б'
        ];
    }
}
контроллер

Код: Выделить всё

   public function actionCalc()
    {
        $model = new Calculations();
        
        if ($model->load(Yii::$app->request->post()) && $model->validate())
        {
            $model->a + $model->b = $model->sum;
            return $this->$model->sum;
            //return $this->refresh();
        }
        else {
            return $this->render('calc', [
                'model' => $model,
                //'sum' => $sum,
            ]);
        }
    }
представление

Код: Выделить всё

<?php

/* @var $this yii\web\View */
/* @var $form yii\bootstrap\ActiveForm */
/* @var $model \frontend\models\ContactForm */

use yii\helpers\Html;
use yii\bootstrap\ActiveForm;

$this->title = 'Калькулятор';
$this->params['breadcrumbs'][] = $this->title;
?>
<div class="site-contact">
    <h1><?= Html::encode($this->title) ?></h1>

    <p>
        If you have business inquiries or other questions, please fill out the following form to contact us. Thank you.
    </p>

    <div class="row">
        <div class="col-lg-5">
            <?php $form = ActiveForm::begin(['id' => 'calc-form']); ?>

                <?= $form->field($model, 'a')->textInput(['autofocus' => true]) ?>

                <?= $form->field($model, 'b') ?>

                <?= $form->field($model, 'sum') ?>

                

                

                <div class="form-group">
                    <?= Html::submitButton('Расчитать', ['class' => 'btn btn-primary', 'name' => 'calc-button']) ?>
                </div>

            <?php ActiveForm::end(); ?>
        </div>
    </div>

</div>


Solutions
Сообщения: 93
Зарегистрирован: 2014.01.09, 13:23
Откуда: Казахстан. ВКО. Усть-Каменогорск

Re: Сложение двух чисел

Сообщение Solutions » 2017.04.23, 13:24

прочел, вопрос, как добраться до данных и сложить их?

Код: Выделить всё

public function actionCalc()
    {
        $model = new Calculations();
        $a = $model->a;
        $b = $model->b;
        $sum = $model->sum;
        if ($model->load(Yii::$app->request->post()) && $model->validate())
        {
            
            $a + $b = $sum;
            return $this->render('calc', ['model' => $model]);
            //return $this->refresh();
        }
        else {
            return $this->render('calc', [
                'model' => $model,
                //'sum' => $sum,
            ]);
        }
    }
таким способом не складывает

Solutions
Сообщения: 93
Зарегистрирован: 2014.01.09, 13:23
Откуда: Казахстан. ВКО. Усть-Каменогорск

Re: Сложение двух чисел

Сообщение Solutions » 2017.04.23, 13:27

Solutions писал(а):
2017.04.23, 13:24
прочел, вопрос, как добраться до данных и сложить их?

Код: Выделить всё

public function actionCalc()
    {
        $model = new Calculations();
        $a = $model->a;
        $b = $model->b;
        $sum = $model->sum;
        if ($model->load(Yii::$app->request->post()) && $model->validate())
        {
            
            $a + $b = $sum;
            return $this->render('calc', ['model' => $model]);
            //return $this->refresh();
        }
        else {
            return $this->render('calc', [
                'model' => $model,
                //'sum' => $sum,
            ]);
        }
    }
таким способом не складывает
Сложил

Код: Выделить всё

$model->sum = $model->a + $model->b;

Закрыто