У меня есть эта модель UserSetting.php
:
class UserSetting extends Model
{
protected $fillable = ['user_id', 'name', 'setting_value'];
public static function set($user_id, $name, $value)
{
if (!User::find($user_id)) {
return error('NoForeign_User');
}
self::updateOrCreate(
['user_id' => $user_id, 'name' => $name],
['setting_value' => $value]
);
}
}
И я хочу использовать ее таким образом внутри UserSettingController.php
:
public function user(Request $request)
{
Validator::make($request->all(), [
'user_id' => 'required|int',
'name' => 'required|string',
'setting_value' => 'required|string',
], $this->messages)->validate();
// HERE IS THE CALL
UserSetting::set($request->user_id, $request->name, $request->setting_value);
return saved();
}
Мне нужно позвонить UserSetting
статическино НЕ с return :
return UserSetting::set(...)
Но когда статическая функция достигает значения if(!User::find($user_id))
, она продолжает работу и показывает помощника saved()
вместо return error('NoForeign_User')
Хотя, если я делаю это с возвратом return UserSetting::set(...)
, это правильно показывает ошибку.
Это правильно?Есть ли у меня какая-либо другая опция, кроме , возвращающая статический класс?
РЕДАКТИРОВАТЬ :
Моя error()
функция такова:
function error($message, $code = 422)
{
$response = ['message' => $message];
if ($errors) {
$response += [
'errors' => $errors,
];
}
return response()->json([
'message' => $message,
], $code);
}