@@ -63,16 +63,20 @@ protected function generateNonUniqueSlug(): string
63
63
{
64
64
if ($ this ->hasCustomSlugBeenUsed ()) {
65
65
$ slugField = $ this ->slugOptions ->slugCustomField ;
66
- if (!$ this ->$ slugField ){
66
+ if (!$ this ->$ slugField ) {
67
67
return '' ;
68
68
}
69
- return Str::slug ($ this ->$ slugField , $ this ->slugOptions ->separator );
69
+ return ! $ this -> slugOptions -> slugifyCustomSlug ? $ this -> $ slugField : Str::slug ($ this ->$ slugField , $ this ->slugOptions ->separator );
70
70
}
71
71
if ($ this ->hasSlugBeenUsed ()) {
72
72
$ slugField = $ this ->slugOptions ->slugField ;
73
73
return $ this ->$ slugField ?? '' ;
74
74
}
75
- return Str::slug ($ this ->getSlugSourceString (), $ this ->slugOptions ->separator );
75
+ $ generatedSlug = $ this ->getSlugSourceString ();
76
+ if (!$ this ->slugOptions ->slugifySlugSourceString ) {
77
+ return $ generatedSlug ;
78
+ }
79
+ return Str::slug ($ generatedSlug , $ this ->slugOptions ->separator );
76
80
}
77
81
78
82
/**
@@ -82,7 +86,7 @@ protected function generateNonUniqueSlug(): string
82
86
protected function hasCustomSlugBeenUsed (): bool
83
87
{
84
88
$ slugField = $ this ->slugOptions ->slugCustomField ;
85
- if (!$ slugField || trim ($ slugField )== '' || !$ this ->$ slugField || trim ($ this ->$ slugField )== '' ){
89
+ if (!$ slugField || trim ($ slugField ) == '' || !$ this ->$ slugField || trim ($ this ->$ slugField ) == '' ) {
86
90
return false ;
87
91
}
88
92
return true ;
@@ -96,7 +100,7 @@ protected function hasSlugBeenUsed(): bool
96
100
{
97
101
$ slugField = $ this ->slugOptions ->slugField ;
98
102
99
- if (!$ slugField || trim ($ slugField )== '' || !$ this ->$ slugField || trim ($ this ->$ slugField )== '' ){
103
+ if (!$ slugField || trim ($ slugField ) == '' || !$ this ->$ slugField || trim ($ this ->$ slugField ) == '' ) {
100
104
return false ;
101
105
}
102
106
return $ this ->getOriginal ($ slugField ) != $ this ->$ slugField ;
@@ -116,8 +120,8 @@ protected function getSlugSourceString(): string
116
120
117
121
$ slugFrom = $ this ->getSlugFrom ($ this ->slugOptions ->generateSlugFrom );
118
122
119
- if (is_null ($ slugFrom ) || (!is_array ($ slugFrom ) && trim ($ slugFrom )== '' )){
120
- if (!$ this ->slugOptions ->generateSlugIfAllSourceFieldsEmpty ){
123
+ if (is_null ($ slugFrom ) || (!is_array ($ slugFrom ) && trim ($ slugFrom ) == '' )) {
124
+ if (!$ this ->slugOptions ->generateSlugIfAllSourceFieldsEmpty ) {
121
125
throw InvalidOption::missingFromField ();
122
126
}
123
127
@@ -136,35 +140,35 @@ protected function getSlugSourceString(): string
136
140
*/
137
141
protected function getSlugFrom ($ fieldName )
138
142
{
139
- if (!is_callable ($ fieldName ) && !is_array ($ fieldName ) && trim ($ fieldName )== '' ){
143
+ if (!is_callable ($ fieldName ) && !is_array ($ fieldName ) && trim ($ fieldName ) == '' ) {
140
144
return '' ;
141
145
}
142
146
143
- if (!is_callable ($ fieldName ) && !is_array ($ fieldName ) && (!data_get ($ this , $ fieldName ))){
147
+ if (!is_callable ($ fieldName ) && !is_array ($ fieldName ) && (!data_get ($ this , $ fieldName ))) {
144
148
return '' ;
145
- }elseif (!is_array ($ fieldName )){
149
+ } elseif (!is_array ($ fieldName )) {
146
150
return $ fieldName ;
147
151
}
148
152
149
153
$ slugSourceString = '' ;
150
154
$ countFieldName = count ($ fieldName );
151
- for ($ i= 0 ; $ i < $ countFieldName ;$ i ++){
155
+ for ($ i = 0 ; $ i < $ countFieldName ; $ i ++) {
152
156
153
157
$ currFieldName = $ fieldName [$ i ];
154
- if (!is_array ($ currFieldName ) && trim ($ currFieldName )== '' ){
158
+ if (!is_array ($ currFieldName ) && trim ($ currFieldName ) == '' ) {
155
159
continue ;
156
160
}
157
- if (!is_array ($ currFieldName ) && (!data_get ($ this , $ currFieldName ))){
161
+ if (!is_array ($ currFieldName ) && (!data_get ($ this , $ currFieldName ))) {
158
162
continue ;
159
163
}
160
- if (!is_array ($ currFieldName ) && data_get ($ this , $ currFieldName )){
164
+ if (!is_array ($ currFieldName ) && data_get ($ this , $ currFieldName )) {
161
165
$ slugSourceString = $ currFieldName ;
162
166
break ;
163
167
}
164
168
165
169
$ slugSourceString = $ this ->getImplodeSourceString ($ currFieldName , '' );
166
170
167
- if ($ slugSourceString!= '' ){
171
+ if ($ slugSourceString != '' ) {
168
172
$ slugSourceString = $ currFieldName ;
169
173
break ;
170
174
}
@@ -184,7 +188,7 @@ protected function makeSlugUnique(string $slug): string
184
188
$ i = 1 ;
185
189
186
190
while ($ this ->otherRecordExistsWithSlug ($ slug ) || $ slug === '' ) {
187
- $ slug = $ originalSlug. $ this ->slugOptions ->separator . $ i ++;
191
+ $ slug = $ originalSlug . $ this ->slugOptions ->separator . $ i ++;
188
192
}
189
193
190
194
return $ slug ;
@@ -197,7 +201,7 @@ protected function makeSlugUnique(string $slug): string
197
201
*/
198
202
protected function otherRecordExistsWithSlug (string $ slug ): bool
199
203
{
200
- return (bool ) static ::where ($ this ->slugOptions ->slugField , $ slug )
204
+ return (bool )static ::where ($ this ->slugOptions ->slugField , $ slug )
201
205
->where ($ this ->getKeyName (), '!= ' , $ this ->getKey () ?? '0 ' )
202
206
->first ();
203
207
}
@@ -208,7 +212,7 @@ protected function otherRecordExistsWithSlug(string $slug): bool
208
212
*/
209
213
protected function guardAgainstInvalidSlugOptions ()
210
214
{
211
- if (is_array ($ this ->slugOptions ->generateSlugFrom ) && count ($ this ->slugOptions ->generateSlugFrom )< 1 ) {
215
+ if (is_array ($ this ->slugOptions ->generateSlugFrom ) && count ($ this ->slugOptions ->generateSlugFrom ) < 1 ) {
212
216
throw InvalidOption::missingFromField ();
213
217
}
214
218
@@ -226,10 +230,10 @@ protected function guardAgainstInvalidSlugOptions()
226
230
* @param string $separator
227
231
* @return string
228
232
*/
229
- protected function getImplodeSourceString ($ slugFrom , string $ separator ) : string
233
+ protected function getImplodeSourceString ($ slugFrom , string $ separator ): string
230
234
{
231
235
$ slugSourceString = collect ($ slugFrom )
232
- ->map (function (string $ fieldName ) : string {
236
+ ->map (function (string $ fieldName ): string {
233
237
if ($ fieldName == '' ) {
234
238
return '' ;
235
239
}
0 commit comments