Php 我们可以提高laravel和mysql的性能吗?
我有一个简单的控制器方法Php 我们可以提高laravel和mysql的性能吗?,php,mysql,laravel,performance,validation,Php,Mysql,Laravel,Performance,Validation,我有一个简单的控制器方法 class SomeController extends Controller { public function send_sms_message() { $this->validate(\request(), [ #### Search in the database for existing user "user_id" => ['re
class SomeController extends Controller
{
public function send_sms_message()
{
$this->validate(\request(), [
#### Search in the database for existing user
"user_id" => ['required', "exists:users,id"],
"message_content" => ['required', "string"],
]);
#### Search again in the database !!! for existing user
$user = User::find(request('user_id'));
# send message to the user using some api like https://www.twilio.com/
}
}
在validate方法中,laravel打开数据库以检查用户是否存在
在“寻找方法”中,我们重复了拉威尔所做的
我们能从验证中得到数据吗??!并提高性能???用户id是提交请求的用户的id还是表单中所选用户的id?还有,之后你会如何处理用户?是否还有其他字段?当验证规则已在检查时,您检查用户存在的目的是什么?@OMiShah i更新了post@ChinLeung我只需要更新帖子,我不想在数据库上搜索两次。而
user\u id
是从一些表单中选择的。如果您真的想简化为单个查询,您可以删除验证规则,直接使用user::find(request('user\u id'))
,如果找不到用户,则抛出ValidationException
。或者创建一个接受用户模型的自定义规则,并在从数据库检索用户后在验证器中使用该规则。