CouldNotResolveTransitionField::setModelClass()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 2
c 1
b 0
f 0
dl 0
loc 5
rs 10
cc 1
nc 1
nop 1
1
<?php
2
3
namespace Spatie\ModelStates\Exceptions;
4
5
use Facade\IgnitionContracts\BaseSolution;
6
use Facade\IgnitionContracts\ProvidesSolution;
7
use Facade\IgnitionContracts\Solution;
8
9
class CouldNotResolveTransitionField extends CouldNotPerformTransition implements ProvidesSolution
10
{
11
    /** @var string */
12
    protected $modelClass;
13
14
    public static function make(string $modelClass): self
15
    {
16
        return (new static("You tried to invoke {$modelClass}::transitionTo() directly, though there are multiple state fields configured."))
17
            ->setModelClass($modelClass);
18
    }
19
20
    public function setModelClass(string $modelClass): self
21
    {
22
        $this->modelClass = $modelClass;
23
24
        return $this;
25
    }
26
27
    public function getSolution(): Solution
28
    {
29
        return BaseSolution::create('Could not resolve transition field')
30
            ->setSolutionDescription("Use {$this->modelClass}->stateField->transitionTo()")
31
            ->setDocumentationLinks([
32
                'Using transitions' => 'https://docs.spatie.be/laravel-model-states/v1/working-with-transitions/01-configuring-transitions/#using-transitions',
33
            ]);
34
    }
35
}
36