PHP code example of vasadibt / yii2-action-resolver
1. Go to this page and download the library: Download vasadibt/yii2-action-resolver 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/ */
vasadibt / yii2-action-resolver example snippets
use vasadibt\actionresolver\ActionResolveTrait;
use vasadibt\actionresolver\ResolvableActionBehavior;
class CashregisterApiController extends \yii\web\Controller
{
use ActionResolveTrait;
public function behaviors()
{
return [
'resolver' => [
'class' => ResolvableActionBehavior::class,
'resolvers' => [
// Define a new resolvable
[
'resolvable' => User::class, // User class need to implement `\vasadibt\actionresolver\ResolvableInterface`
// Optional you can filter the fiering action
// 'actions' => ['*'],
// 'actions' => ['view', 'update', 'delete'],
],
// or a simple way
User::class,
// or you can use callable resolving
[
'resolvable' => Post::class,
'actions' => ['update'],
'callable' => function(Request $request, Action $action){
$post = static::findOne($request->post('id'));
if($post === null){
throw new NotFoundHttpException(Yii::t('yii', 'Page not found.'));
}
if (!Yii::$app->user->can('updatePost', ['post' => $post])) {
throw new ForbiddenHttpException(Yii::t('yii', 'You are not allowed to perform this action.'));
}
return $post;
},
],
],
],
];
}
public function actionView(User $user)
{
return $this->render('view', ['user' => $user]);
}
public function actionUpdate(Request $request, Post $post)
{
if($post->load($request->post())){
$post->save();
return $this->redirect(['index']);
}
return $this->render('update', ['model' => $post]);
}
public function actionDelete(Post $post)
{
$post->delete();
return $this->redirect(['index']);
}
}
use vasadibt\actionresolver\ResolvableInterface;
class User implements ResolvableInterface
{
public function resolve($request, $action)
{
if($model = static::findOne($request->post('id'))){
return $model;
}
throw new NotFoundHttpException(Yii::t('yii', 'Page not found.'));
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.