php - Laravel,我如何覆盖供应商的代码
问题描述
Laravel 5.1 有这个代码:
public function postEmail(Request $request)
{
$this->validate($request, ['email' => 'required|email']);
$response = Password::sendResetLink($request->only('email'), function (Message $message) {
$message->subject($this->getEmailSubject());
});
switch ($response) {
case Password::RESET_LINK_SENT:
return redirect()->back()->with('status', trans($response));/*I HAVE TO CHANGE THIS*/
case Password::INVALID_USER:
return redirect()->back()->withErrors(['email' => trans($response)]);
}
}
该代码来自一个特征:
app\vendor\laravel\framework\src\Illuminate\Foundation\Auth\ResetsPasswords.php
我需要用另一个代码更改注释行:
return redirect()->route('login')->with(['message' => 'Se ha enviado a su email el link del reseteo, por favor verifique.',]);
但这是一个供应商文件。我怎样才能做到这一点?覆盖另一个文件中的方法?在哪里?
解决方案
一种稍微笨拙的解决方案是复制您需要编辑的类,并将其somedir/fixed_class.php
与原始命名空间和类名一起放入。然后添加到composer.json:
"autoload": {
"files": ["somedir/fixed_class.php"]
}
但是,您最好以某种方式尝试扩展该类并使用您自己的改进版本(或为原始作曲家模块提交错误修复/功能请求)。
推荐阅读
- pandas - Python:转换包含列表和字典的 Pandas 数据框
- ios - IOS 应用程序中未收到 Firebase 推送通知徽章计数
- java - 计时器无法按预期工作,因为它会立即结束程序
- multithreading - Goroutine-停止运行进程
- cuda - 当 cudaDeviceSynchronize() 出现错误 30?
- html - 导航栏不会一直走到边缘
- solr - Solr 8.6.3 无法索引 html 文件
- rest - 在具有应该唯一的指定属性的记录已经存在的情况下,是否可以使用 409 HTTP 代码?
- c++ - “错误 LNK2019:在函数 _main 中引用的未解析的外部符号 _long_add@12”在 C++ 中使用汇编函数时
- python - 在 3 维列表上使用 python pop() 时,它会从其他索引中删除元素