@@ -20,12 +20,17 @@ public function validate($attribute, $value, $parameters, $validator) {
20
20
$ attributeParts = explode ('. ' , $ attribute );
21
21
$ name = $ attributeParts [0 ];
22
22
$ locale = $ attributeParts [1 ] ?? app ()->getLocale ();
23
- $ table = $ parameters [0 ] ?? null ;
24
23
$ column = $ this ->filterNullValues ($ parameters [1 ] ?? null ) ?: $ name ;
25
24
$ ignoreValue = $ this ->filterNullValues ($ parameters [2 ] ?? null );
26
25
$ ignoreColumn = $ this ->filterNullValues ($ parameters [3 ] ?? null );
27
26
28
- $ isUnique = $ this ->isUnique ($ value , $ locale , $ table , $ column , $ ignoreValue , $ ignoreColumn );
27
+ // dd($parameters);
28
+ $ table = $ parameters [0 ] ?? null ;
29
+ $ tableParts = explode ('. ' , $ table );
30
+ $ connection = isset ($ tableParts [1 ]) ? $ tableParts [0 ] : config ('database.default ' );
31
+ $ table = $ tableParts [1 ] ?? $ tableParts [0 ];
32
+
33
+ $ isUnique = $ this ->isUnique ($ value , $ locale , $ connection , $ table , $ column , $ ignoreValue , $ ignoreColumn );
29
34
30
35
if ( ! $ isUnique ) {
31
36
$ this ->addErrorsToValidator ($ validator , $ parameters , $ name , $ locale );
@@ -37,9 +42,9 @@ public function validate($attribute, $value, $parameters, $validator) {
37
42
/**
38
43
* Filter NULL values.
39
44
*
40
- * @param mixed $value
45
+ * @param string|null $value
41
46
*
42
- * @return mixed
47
+ * @return string|null
43
48
*/
44
49
protected function filterNullValues ($ value )
45
50
{
@@ -55,7 +60,7 @@ protected function filterNullValues($value)
55
60
/**
56
61
* Check if a translation is unique.
57
62
*
58
- * @param string $value
63
+ * @param mixed $value
59
64
* @param string $locale
60
65
* @param string $table
61
66
* @param string $column
@@ -64,9 +69,9 @@ protected function filterNullValues($value)
64
69
*
65
70
* @return bool
66
71
*/
67
- protected function isUnique ($ value , $ locale , $ table , $ column , $ ignoreValue = null , $ ignoreColumn = null )
72
+ protected function isUnique ($ value , $ locale , $ connection , $ table , $ column , $ ignoreValue = null , $ ignoreColumn = null )
68
73
{
69
- $ query = $ this ->findTranslation ($ table , $ column , $ locale , $ value );
74
+ $ query = $ this ->findTranslation ($ connection , $ table , $ column , $ locale , $ value );
70
75
$ query = $ this ->ignore ($ query , $ ignoreColumn , $ ignoreValue );
71
76
72
77
$ isUnique = $ query ->count () === 0 ;
@@ -80,13 +85,13 @@ protected function isUnique($value, $locale, $table, $column, $ignoreValue = nul
80
85
* @param string $table
81
86
* @param string $column
82
87
* @param string $locale
83
- * @param string $value
88
+ * @param mixed $value
84
89
*
85
90
* @return \Illuminate\Database\Query\Builder
86
91
*/
87
- protected function findTranslation ($ table , $ column , $ locale , $ value )
92
+ protected function findTranslation ($ connection , $ table , $ column , $ locale , $ value )
88
93
{
89
- return DB ::table ($ table )->where ("{$ column }-> {$ locale }" , '= ' , $ value );
94
+ return DB ::connection ( $ connection )-> table ($ table )->where ("{$ column }-> {$ locale }" , '= ' , $ value );
90
95
}
91
96
92
97
/**
0 commit comments