for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace App\ViewModels;
use App\Models\Tag;
use App\Models\Post;
use App\Models\Category;
use Illuminate\Support\Carbon;
class PostDetailViewModel extends FormViewModel
{
public function __construct(Post $post)
parent::__construct($post);
$this->published_at = $this->model->exists
published_at
In PHP it is possible to write to properties without declaring them. For example, the following is perfectly valid PHP code:
class MyClass { } $x = new MyClass(); $x->foo = true;
Generally, it is a good practice to explictly declare properties to avoid accidental typos and provide IDE auto-completion:
class MyClass { public $foo; } $x = new MyClass(); $x->foo = true;
? $this->model->published_at->format('Y-m-d\TH:i')
: Carbon::now()->format('Y-m-d\TH:i');
$this->categories = Category::select('id', 'name')->pluck('name', 'id');
categories
$this->currentTags = $this->model->tags->pluck('name');
currentTags
$this->tags = Tag::orderBy('name')->pluck('name');
tags
}
protected function setTitle()
$this->title = $this->model->exists
? "Edit Post: {$this->model->title}"
: 'Create Post';
protected function setAction()
$this->action = $this->model->exists
? route('backend.posts.update', $this->model)
$this->model
object<Illuminate\Database\Eloquent\Model>
array
It seems like the type of the argument is not accepted by the function/method which you are calling.
In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.
We suggest to add an explicit type cast like in the following example:
function acceptsInteger($int) { } $x = '123'; // string "123" // Instead of acceptsInteger($x); // we recommend to use acceptsInteger((integer) $x);
: route('backend.posts.store');
protected function setMethod()
$this->method = $this->model->exists
? 'PUT'
: 'POST';
In PHP it is possible to write to properties without declaring them. For example, the following is perfectly valid PHP code:
Generally, it is a good practice to explictly declare properties to avoid accidental typos and provide IDE auto-completion: