hosseinsheikh/smart-view-model

v3.0.0 2023-05-30 08:20 UTC

This package is not auto-updated.

Last update: 2025-07-08 19:28:42 UTC


README

Smart View Model

  • To use this pattern, you can do the following
    • Make controller and view model:

        php artisan vm:make-controller {controller name}
        php artisan vm:make-controller {controller name} --namespace={defin special namespace for viewmodel}
        php artisan vm:make-viewmodel {view model name} --controller={controller name}
        php artisan vm:make-viewmodel {view model name} --controller={controller name} --namespace={defin special namespace for viewmodel}
      
    • Controller method structure:

         // view model puts in ViewModel/Hossein namespace
         // view model name is IndexViewModel
          public function index()
          {
              return \SmartViewModel::addItems([])
                  ->throughViewModel('hossein.index') 
                  ->thenReturn();
          }
      
        // view model puts in Malekkhatoon/Ahmad/ViewModel/Hossein namespace
        // view model name is IndexViewModel
        public function index()
        {
            return \SmartViewModel::addItems([])
                ->throughViewModel('hossein.index')
                ->setNameSpace('malekhatoon.ahmad')
                ->thenReturn();
        }
      
        // You can use this instead of the top
        public function index()
        {
            return \SmartViewModel::addItems([])
                ->through(Malekkhatoon\Ahmad\ViewModel\Hossein\IndexViewModel::class)
                ->thenReturn();
        }