use model in view laravel code example
Example 1: laravel view-model
class PostViewModel extends ViewModel
{
public $indexUrl = null;
public function __construct(User $user, Post $post = null)
{
$this->user = $user;
$this->post = $post;
$this->indexUrl = action([PostsController::class, 'index']);
}
public function post(): Post
{
return $this->post ?? new Post();
}
public function categories(): Collection
{
return Category::canBeUsedBy($this->user)->get();
}
}
Example 2: laravel view-model
php artisan make:view-model HomepageViewModel
Example 3: laravel view-model
class PostsController
{
public function update(Request $request, Post $post)
{
return new PostViewModel($post);
}
}
Example 4: laravel view-model
class PostsController
{
public function update(Request $request, Post $post)
{
return (new PostViewModel($post))->view('post.form');
}
}