任何人都知道在Laravel中处理错误的最佳方法是什么,有什么规则可以遵循?
目前我这样做:
public function store(Request $request)
{
$plate = Plate::create($request->all());
if ($plate) {
return $this->response($this->plateTransformer->transform($plate));
} else {
// Error handling ?
// Error 400 bad request
$this->setStatusCode(400);
return $this->responseWithError("Store failed.");
}
}
Run Code Online (Sandbox Code Playgroud)
setStatusCode和responseWithError来自我的控制器的父亲:
public function setStatusCode($statusCode)
{
$this->statusCode = $statusCode;
return $this;
}
public function responseWithError ($message )
{
return $this->response([
'error' => [
'message' => $message,
'status_code' => $this->getStatusCode()
]
]);
}
Run Code Online (Sandbox Code Playgroud)
但这是处理API错误的好方法,我看到一些不同的方法来处理网络上的错误,最好的是什么?
谢谢.
我有一个有一些关系的对象,我需要检查这些关系是否为空,我正在尝试检查is_null,isset,!= undefined等,但没有任何作用,这是我得到的关系,它是空的:
object(Illuminate\Database\Eloquent\Collection)#197 (1) {
["items":protected]=>
array(0) {
}
}
Run Code Online (Sandbox Code Playgroud)
有没有办法轻松检查?谢谢.
我试图在用户注册时向他们发送电子邮件,我创建了一个可邮寄的类:
<?php
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Notifications\Messages\MailMessage;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
class WelcomeMail extends Mailable
{
use Queueable, SerializesModels;
public $user;
public $message;
/**
* Create a new message instance.
*
* @return void
*/
public function __construct($user)
{
$this->user = $user;
$this->message = (new MailMessage)
->greeting('Bonjour '.$user->name)
->line('Nous vous remercions de votre inscription.')
->line('Pour rappel voici vos informations :')
->line('Mail: '.$user->email)
->line('Password: '.$user->password);
}
/**
* Build the message.
*
* @return $this
*/
public function …Run Code Online (Sandbox Code Playgroud) 您好,有一个非常简单的函数,可以调用端点来检索我的用户,我在标头中使用它来显示连接的用户,但不想在每次渲染标头时都调用端点。
所以我正在尝试这样的事情:
public getUser(): User {
if (!this.user) {
this.http.get<User>(environment.apiRoot + '/me').subscribe(res => {
this.setUser(res);
return this.user.value;
}, err => {
});
} else {
return this.user.value;
}
}
Run Code Online (Sandbox Code Playgroud)
具有以下setUser功能:
public setUser(u: User): void {
if (!this.user) {
this.user = new BehaviorSubject(u);
} else {
this.user.next(u);
}
}
Run Code Online (Sandbox Code Playgroud)
还有BehaviorSubject: private user: BehaviorSubject<User>;
在我的标头组件中,我这样称呼它ngOnInit:
this.user = this.appState.getUser();
console.log(this.user);
Run Code Online (Sandbox Code Playgroud)
但console.log中的用户始终是未定义的,为什么它不等待函数中的订阅getUser?
我有一个关于异常处理的简单问题。我目前有一个应用程序分为多个层:控制器、服务、存储库,我的问题如下:异常处理应该由控制器还是服务来完成?
例子:
控制器:
@PostMapping(value = "/{id}/parents", produces = "application/json; charset=utf-8")
public ResponseEntity<AccommodationRequestDTO> resident(@PathVariable Long id, @Valid @RequestBody ParentsAndUrgencyContactDTO parentsAndUrgencyContactDTO) {
AccommodationRequestDTO saved;
try {
saved = this.service.parents(id, parentsAndUrgencyContactDTO);
} catch (Exception e) {
throw new ResponseStatusException(
HttpStatus.INTERNAL_SERVER_ERROR,
"Failed to save request", e);
}
return ResponseEntity.ok(saved);
}
Run Code Online (Sandbox Code Playgroud)
服务:
public AccommodationRequestDTO parents(Long id, ParentsAndUrgencyContactDTO parentsAndUrgencyContactDTO) {
Optional<AccommodationRequest> accommodationRequest = repository.findById(id);
if (accommodationRequest.isPresent()) {
AccommodationRequest saved = accommodationRequest.get();
Parent firstParent = parentMapper.toEntity(parentsAndUrgencyContactDTO.getFirstParent());
Parent secondParent = parentMapper.toEntity(parentsAndUrgencyContactDTO.getSecondParent());
firstParent = parentRepository.save(firstParent);
secondParent = parentRepository.save(secondParent);
saved.setFirstParent(firstParent); …Run Code Online (Sandbox Code Playgroud) 我正在尝试在我的项目中使用该类SimpMessagingTemplate通过 websocket 发送一些数据。问题是我总是出错,这是完整的错误:
Error creating bean with name 'webSocketUserNotificationManagerImpl' defined in URL [...]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'org.springframework.messaging.simp.SimpMessagingTemplate' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}
Run Code Online (Sandbox Code Playgroud)
这是webSocketuserNotificationManagerImpl服务:
@Service
public class WebSocketUserNotificationManagerImpl implements UserNotificationManager {
/**
* Template to use to send back a message to the user via Web-socket.
*/
private SimpMessagingTemplate template;
public WebSocketUserNotificationManagerImpl(SimpMessagingTemplate template) {
this.template …Run Code Online (Sandbox Code Playgroud) 我有一个带有一些按钮的按钮组,两个用 html 创建,其他用 ng-repeat 创建。我希望单击按钮时有一个活动类,以便我可以自定义它以显示它已激活。
所以这就是我所做的:
<div class="btn-group" role="group" aria-label="Basic example"
ng-init="selectedTab = 'raw'">
<button class="btn"
ng-click="selectView('raw'); selectedTab = 'raw'; console.log(selectedTab);"
ng-class="{'active':selectedTab === 'raw'}">Raw data
</button>
<button class="btn"
ng-click="selectView('summary'); selectedTab = 'summary'; console.log(selectedTab);"
ng-class="{'active':selectedTab === 'summary'}">Summary
</button>
<button class="btn" ng-repeat="(key, value) in views"
ng-click="selectView(key); selectedTab = key; console.log(selectedTab);"
ng-class="{'active':selectedTab === key}">
{{ key }}
</button>
</div>
Run Code Online (Sandbox Code Playgroud)
我的问题是,对于两个第一个都正常工作,当我点击第一个按钮时,类被添加,当我点击第二个时,类从第一个中删除并添加到第二个中。
问题在于 ng-repeat 生成的按钮,当我点击它们时,它会将活动类添加到按钮中,但是当我点击另一个按钮时,它不会删除该类,因此它们都可以拥有 activate 类。
我究竟做错了什么 ?
laravel ×3
spring ×2
angular ×1
angularjs ×1
api ×1
email ×1
observable ×1
relationship ×1
spring-boot ×1