baha2odeh / yii2-precognition
Yii2 Precognition
Installs: 19
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
Type:yii2-extension
Requires
- yiisoft/yii2: ~2.0.0
This package is auto-updated.
Last update: 2025-03-05 14:11:49 UTC
README
Yii2 Precognition
Installation
The preferred way to install this extension is through composer.
Either run
php composer.phar require --prefer-dist baha2odeh/yii2-precognition "*"
or add
"baha2odeh/yii2-precognition": "*"
to the require section of your composer.json
file.
Usage
Once the extension is installed, simply use it in your code by:
add this trait to the ActiveRecord
class User extends ActiveRecord { ... use \Baha2Odeh\Precognition\ValidateTrait; ...
You can also use this method with a custom model
$this->handlePrecognition();
This method stops request processing if there are no errors and the request is a 'precognition' request, meaning it's not an actual submission but a preliminary check.
class LoginForm extends Model { ... use \Baha2Odeh\Precognition\ValidateTrait; ... public function process(){ ... if(!$this->validate()){ return false; } $this->handlePrecognition(); ... }
Last step to change the restful response serializer to handle the 'precognition' requests
class UserController extends \yii\rest\ActiveController { ... public $serializer = \Baha2Odeh\Precognition\Serializer::class; ...
in frontend side you have to add a new header in the axios requests to allow Yii to return 'precognition' response in case the submit was failed
import axios from 'axios' import { client } from 'laravel-precognition-vue'; axios.interceptors.request.use(config => { config.headers['precognition-on-submit'] = "true" return config }) client.use(axios)