С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP: Yii, Yii2
Войти
Регистрация
Восстановить пароль
 
Ринат
0 / 0 / 3
Регистрация: 29.05.2014
Сообщений: 83
1

FrameWork Yii2 работа с формами и ActiveRecord

04.08.2016, 16:55. Просмотров 431. Ответов 2
Метки нет (Все метки)

Дамы и господа кто может объяснить как привязать функционал кнопкам в формах ActiveRecord? вот пример:
PHP
1
2
3
4
5
6
7
8
9
10
<?php
use yii\helpers\Html;
use yii\widgets\ActiveForm;
foreach ($arrayView as $item )
$form = ActiveForm::begin(); ?>
<?= $form->field($item, 'topic')->textarea(['rows'=>10]) ?>
<?= Html::submitButton('Добавить', ['class' => 'btn btn-primary']) ?>
 
<?= Html::submitButton('Назад', ['class' => 'btn btn-primary']) ?>
<?php ActiveForm::end() ?>
Меня интересует именно функционал, мне нужно добавить информацию в БД когда я нажимаю кнопку Добавить. Если есть люди которые знают и знают как объяснить буду признателен.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.08.2016, 16:55
Ответы с готовыми решениями:

Yii2 ActiveRecord
Всем привет! Кто подскажет, как в Yii2 с помощью ActiveRecord вот такие запросы...

Yii2 Циклический обход элементов ActiveRecord
Есть объект ActiveRecord. У него есть поле parent в котором хранится id...

Yii2 ActiveRecord Как разбить запрос по необходимости
Такой запрос $query =...

Yii2 работа с БД
Вот изучаю документацию и не получается корректно поработать с БД. Вот...

Работа с API VK в YII2
Здравствуйте! Установил только что Yii2 basic, хотел использовать расширение от...

2
php10
143 / 104 / 42
Регистрация: 30.04.2016
Сообщений: 544
04.08.2016, 23:29 2
Вот есть отличные статьи:
https://github.com/yiisoft/yii2/blob...input-forms.md
https://github.com/yiisoft/yii2/blob...ture-models.md

Что находится в ArrayView? Если вы используете $item в ->field, то я надеюсь, что там экземпляр класса Model. Если там не форма, то отправлять данные AJAXом на контроллер, а потом засовывать эти данные в модель.
0
Ринат
0 / 0 / 3
Регистрация: 29.05.2014
Сообщений: 83
05.08.2016, 10:13  [ТС] 3
сейчас распределю код и название файла что бы было понятно
путь: views/test
testform.php
PHP
1
2
3
4
5
6
7
8
9
10
<?php
use yii\helpers\Html;
use yii\widgets\ActiveForm;
$form = ActiveForm::begin([ 'id' => 'form', 'method' => 'POST',
    'action' => '?r=test/testform',
    'options' => ['style' => 'width: 100%;', 'autocomplete' => 'off']
]); ?>
<?= $form->field($model, 'topic')->textarea(['rows'=>10]) ?>
<?= Html::submitButton('Добавить', ['class' => 'btn btn-primary']) ?>
<?php ActiveForm::end() ?>
test.php
PHP
1
2
3
4
5
6
7
8
<?php
use yii\helpers\Html;
foreach ($arrayView as $item )
{
    echo Html::tag('h5', Html::encode($item->id));
    echo Html::tag('h5', Html::encode($item->date_created));
    echo Html::tag('h5', Html::encode($item->topic));
}
путь: controllers, название файла TestController.php
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
<?php
namespace app\controllers;
 
 
use app\models\ContactForm;
use Yii;
use yii\web\Controller;
use app\models\TestModel;
 
 
 
 
class TestController extends Controller
{
    public function actionTest()
    {
 
        //$delete=TestForm::deleteAll(['id'=>59]);
 
        $array=TestModel::getAll();
//        $updateCounter=TestForm::findOne(18);
//        $updateCounter->updateCounters(['id'=>-17]);
//        $update=TestForm::updateAll(['topic'=>'Статья 5'],['id'=>5]);
//        $save=new TestModel();
//        $save->topic='Статья:';
//        if(empty($save))
//        {
//            $save->save();
//        }
 
        return $this->render('test', ['arrayView'=>$array]);
 
    }
    public function actionTestform()
    {
        $model = new TestModel();
//        echo "<pre>";
//        print_r(Yii::$app->request->post());
//        echo "</pre>";
//        die();
        if (isset($_POST['TestModel']['topic'])){
            // save record
 
            $model->topic = $_POST['TestModel']['topic'];
            $model->save(false);
        }
 
 
 
        //$delete=TestForm::deleteAll(['id'=>59]);
 
//        $array=testform::find()->where('topic')->one();
//        $updateCounter=TestForm::findOne(18);
//        $updateCounter->updateCounters(['id'=>-17]);
//        $update=TestForm::updateAll(['topic'=>'Статья 5'],['id'=>5]);
//        $save=new TestModel();
//        $save->topic='Статья:';
//        if(empty($save))
//        {
//            $save->save();
//        }
 
 
        return $this->render('testform',['model'=>$model]);
    }
 
}
путь: models название файла TestModel.php
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?php
namespace app\models;
 
use yii\db\ActiveRecord;
 
class TestModel extends ActiveRecord
{
    public $topic;
    public $id;
    public $date_created;
 
    /**
     * @return array the validation rules.
     */
    public function rules()
    {
//        return [
//            // name, email, subject and body are required
//            [['topic'], 'required']
//        ];
    }
 
 
    public static function tableName()
    {
        return 'tableName';
    }
 
    public static function getAll()
    {
        $base=self::find()->all();
        return $base;
    }
 
}
сама суть заключается в том что я смог вывести форму без данных но как кнопочку сохранить забиндить? я не понимаю.. если бы я просто использовал обычную форму я смог бы сделать, но тогда сам фрейморк не нужен.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.08.2016, 10:13

Ошибка при установке Yii2-user with Yii2 advanced template
https://github.com/dektrium/yii2-user/blob/master/docs/usage-with-advanced-templ...

Простой многостраничный сайт на Yii2 без БД, есть ли быстрый старт для новичка в Yii2?
Привет! Решил смастерить сайт на Yii2, прочел вчера вводный раздел...

Сильно ли отличается работа с Yii и Yii2?
Сильно ли отличается работа на этих фреймворках? Просто хотел начать изучать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru