1. Go to this page and download the library: Download rootlocal/yii2-crud library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
rootlocal / yii2-crud example snippets
namespace rootlocal\crud\test\app\controllers;
use rootlocal\crud\test\app\models\db\Book;
use rootlocal\crud\test\app\models\search\BookSearch;
use rootlocal\crud\controllers\ActiveController;
/**
* Class CrudController
* @package rootlocal\crud\test\app\controllers
*/
class CrudController extends ActiveController
{
/** @var string */
public $modelClass = Book::class;
/** @var string */
public $modelSearchClass = BookSearch::class;
}
use rootlocal\crud\test\app\models\db\Book;
use rootlocal\crud\test\app\models\search\BookSearch;
use yii\web\Controller;
use rootlocal\crud\actions\CreateAction;
use rootlocal\crud\actions\DeleteAction;
use rootlocal\crud\actions\IndexAction;
use rootlocal\crud\actions\UpdateAction;
use rootlocal\crud\actions\ValidateAction;
use rootlocal\crud\actions\ViewAction;
/**
* Class BookController
* @package rootlocal\crud\test\app\controllers
*/
class BookController extends Controller
{
// ...
/**
* {@inheritdoc}
* @return array
*/
public function actions()
{
return [
'index' => [
'class' => IndexAction::class,
'searchModel' => BookSearch::class,
],
'view' => [
'class' => ViewAction::class,
'model' => Book::class,
],
'validate' => [
'class' => ValidateAction::class,
'model' => Book::class,
'scenario' => Book::SCENARIO_CREATE,
],
'create' => [
'class' => CreateAction::class,
'model' => Book::class,
'scenario' => Book::SCENARIO_CREATE,
],
'update' => [
'class' => UpdateAction::class,
'model' => Book::class,
'scenario' => Book::SCENARIO_UPDATE,
],
'delete' => [
'class' => DeleteAction::class,
'model' => Book::class,
],
];
}
// ...
}
use rootlocal\crud\test\app\models\db\Book;
use yii\helpers\Html;
use yii\web\View;
use yii\widgets\ActiveForm;
use yii\helpers\Url;
/**
* @var $this View
* @var $model Book
* @var $form ActiveForm
*/
use rootlocal\crud\test\app\models\db\Book;
use yii\data\ActiveDataProvider;
use rootlocal\crud\components\SearchModelInterface;
use rootlocal\crud\test\app\models\query\BookQuery;
/**
* Class BookSearch
* @package rootlocal\crud\test\app\models
*
* @property BookQuery $query
*/
class BookSearch extends Book implements SearchModelInterface
{
/**
* @var BookQuery
*/
private $_query;
// ...
/**
* @return BookQuery
*/
public function getQuery(): BookQuery
{
if ($this->_query === null) {
$this->_query = self::find();
}
return $this->_query;
}
/**
* @param BookQuery $query
*/
public function setQuery(BookQuery $query): void
{
$this->_query = $query;
}
/**
* Creates data provider instance with search query applied
* @param array $params
* @return ActiveDataProvider
*/
public function search($params = [])
{
$query = $this->getQuery();
$dataProvider = new ActiveDataProvider([
'query' => $query,
]);
// ...
return $dataProvider;
}
}
use rootlocal\crud\test\app\models\db\Book;
use rootlocal\crud\test\app\models\search\BookSearch;
use yii\web\Controller;
use rootlocal\crud\actions\CreateAction;
use rootlocal\crud\actions\DeleteAction;
use rootlocal\crud\actions\IndexAction;
use rootlocal\crud\actions\UpdateAction;
use rootlocal\crud\actions\ValidateAction;
use rootlocal\crud\actions\ViewAction;
/**
* Class BookController
* @package rootlocal\crud\test\app\controllers
*/
class BookController extends Controller
{
// ...
/**
* {@inheritdoc}
* @return array
*/
public function actions()
{
return [
'index' => [
'class' => IndexAction::class,
'searchModel' => BookSearch::class,
'dataProvider' => function ($model, $queryParams) {
/**
* @var BookSearch $model
* @var array $queryParams
*/
$model->query = $model::find()->active();
return $model->search($queryParams);
}
],
'view' => [
'class' => ViewAction::class,
'model' => function ($id) {
/**
* @var int $id
*/
return Book::find()->active()->where(['id' => $id])->one();
}
],
// etc ...
];
}
// ...
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.