我使用的是 Laravel 8.64,我的电子邮件在产品和开发服务器上都运行良好。但是,升级到 9.0.2 后,我在发送电子邮件时遇到了问题。当然,我遵循了所有说明,但当我尝试发送电子邮件时仍然出现错误。
未设置用户。{“异常”:“[对象](Symfony \ Component \ Mailer \ Exception \ IncompleteDsnException(代码:0):未设置用户。
经过对供应商文件夹的一些研究后,我发现AbstractTransportFactory包含getUser方法的类。
protected function getUser(Dsn $dsn): string
{
$user = $dsn->getUser();
if (null === $user) {
throw new IncompleteDsnException('User is not set.');
}
return $user;
}
Run Code Online (Sandbox Code Playgroud)
当我return '';在这个 if 语句中时,一切正常,而不是抛出异常。有谁知道这个问题的解决方案以及为什么会发生这种情况
它可能是显而易见的,我完全忽略了这一点,但我有一个表包含多行user_id,site_id,例如
ldstaff | ld_site
____________________
3 1
3 2
4 1
Run Code Online (Sandbox Code Playgroud)
最初由旧开发人员编写的mysql查询得到了工作人员ID找到他们的名字,然后将所有网站连接在一起制作这样的东西.
StaffID | Name | sites
3 Dave 1,2
Run Code Online (Sandbox Code Playgroud)
此查询最初编写为
SELECT `ld_staff` as staffID ,a.name,GROUP_CONCAT(`ld_site`) as sites FROM `lead_distribution` l
LEFT JOIN users a ON a.crm_id = l.ld_staff
WHERE ld_enabled = 1 AND
`account_type` = 1 AND `active` = 1 AND `no_more` = 0 AND network_team > 0 AND renewal_team = 0
GROUP BY `ld_staff`
Run Code Online (Sandbox Code Playgroud)
但是,当我们尝试在Laravel中将其作为新系统的一部分写入以获得相同的结果时,我们会出现错误SQLSTATE [42000]:语法错误或访问冲突:1055表达式#2无论我们如何尝试篡改查询它总是回到这个.读它似乎sql_mode only_full_group_by不允许这种类型的查询,所以我把sql_mode改为=""这个错误仍然存在.
幼虫查询是
$data = DB::table('lead_distribution')
->join('users', 'ld_staff', '=', 'users.crm_id')
->select("lead_distribution.ld_staff", …Run Code Online (Sandbox Code Playgroud) 我正在为我的laravel数据库写一些播种机.我正在使用Laravel Scout TNTSearch驱动程序.
这有一个控制台命令
php artisan tntsearch:import App\\MyModel
Run Code Online (Sandbox Code Playgroud)
我想从播种机上拨打这个命令.我已经看过了实现,它很复杂,我真的不想重构,等待合并的pull请求,或者将实现复制并粘贴到我的文件中.
在播种机内我试过:
$this->call('tntsearch:import', ['model' => App\User::class]);
Run Code Online (Sandbox Code Playgroud)
但$ this指的是播种机,该$this方法期待另一个播种机,而不是控制台命令.
我真的想从我的播种机内部召唤工匠指令.这可能吗?
更新:
我最终在播种机里做了这个:
exec('php artisan tntsearch:import App\\User');
Run Code Online (Sandbox Code Playgroud)
这有效,但感觉很脏.没有使用还有另一种简单的方法call吗?
我有带有自定义登录的 Laravel 5.7 项目。在重定向页面等待 2 或 3 分钟等之后,如何让 Laravel 接受三次登录尝试?
public function loginPost(LoginRequest $request)
{
if (Auth::attempt(array('user_name' => $request->user_name, 'password' => $request->user_pass)))
{
if(Auth::check())
return redirect('/');
else
return back();
}
else
{
return "login faled call administrator";
}
}
Run Code Online (Sandbox Code Playgroud) 例如,我有一张桌子...
create table emp(
empno integer,
ename character varying(255),
job character varying(255),
mgr integer,
hiredate timestamp without time zone,
sal double pricision,
comm integer,
deptno integer
)
Run Code Online (Sandbox Code Playgroud)
当我尝试插入数据时...
insert into emp (empno,ename,job,mgr,hiredate,sal,comm,deptno) values (1,'abc','abc','e','2018-10-12 00:00:00',50.50,1,'f');
Run Code Online (Sandbox Code Playgroud)
然后这给了我一个错误,invalid text representation 7 error invalid input syntax for integer因为我已经插入了字符串值,mgr并且deptno只能通过查看值才能找到它,但是PostgreSQL没有给我确切的列名,在该列名中遇到了这样的问题。有什么办法可以在错误消息本身中获取列名。因为当我们有超过50到60列时,要找到有问题的列是一个挑战。
我正在尝试部署 Laravel 应用程序,想知道 Composer 是否需要单独安装在服务器上?
我正在使用Laravel 5.7,并想知道在从数据库中提取并输出到Blade / view的描述中,限制单词而不是字符的正确方法是什么。
我目前正在通过在我的Blade文件中添加以下内容来进行此工作(注意,Str类在Blade /视图中):
@php use Illuminate\Support\Str; @endphp
{!! (nl2br(e(Str::words($test->testimonial, '25')))) !!}
Run Code Online (Sandbox Code Playgroud)
上面将我的段落限制为25个单词,但是我意识到我应该在我的Controller中而不是Blade中使用Str类。
当我添加use Illuminate\Support\Str;控制器而不是Blade时,我得到了Str丢失的错误。
控制者
@php use Illuminate\Support\Str; @endphp
{!! (nl2br(e(Str::words($test->testimonial, '25')))) !!}
Run Code Online (Sandbox Code Playgroud)
如何在控制器中使用Str类而不是Blade?
第1步:在控制台/终端中。
npm install --save sweetalert2
Run Code Online (Sandbox Code Playgroud)
第2步:在app.scss中添加此行...
@import '~sweetalert2/src/sweetalert2.scss';
Run Code Online (Sandbox Code Playgroud)
第3步:在app.js中添加此行...
const swal = require('sweetalert2');
Run Code Online (Sandbox Code Playgroud)
STEP4:在webpack.min.js中...
mix.setPublicPath('public');
mix.js('resources/js/app.js', 'js');
mix.sass('resources/sass/app.scss', 'css');
Run Code Online (Sandbox Code Playgroud)
第5步: npm run dev
步骤6:将app.js和app.css添加到HTML文档
我收到此错误:
未捕获的ReferenceError:未定义swal
缺少的步骤是什么?
我正在尝试从Laravel编译新项目随附的app.scss文件,但我想安装Bootstrap4。在执行此操作时,我npm run dev没有安装Bootstrap 4,但默认情况下它仍然具有Laravel带来的Bootstrap。 。
有什么建议或文档吗?
我想在 Laravel 5.7 中记录 404 错误,但我不明白如何打开它。除了记录 404 错误之外,我还想记录请求的 URL。其他错误被正确记录。
.env
APP_DEBUG=true
LOG_CHANNEL=stack
Run Code Online (Sandbox Code Playgroud)
配置/日志记录.php
'stack' => [
'driver' => 'stack',
'channels' => ['daily'],
],
Run Code Online (Sandbox Code Playgroud)
根据错误处理文档:
异常处理程序的 $dontReport 属性包含一个不会被记录的异常类型数组。例如,由 404 错误以及其他几种类型的错误导致的异常不会写入您的日志文件。您可以根据需要向此数组添加其他异常类型:
在app/Exceptions/Handler该$dontReport数组为空。
我通过 Blade 文件自定义了 404 视图 resources/views/errors/404.blade.php
基于此答案,我尝试了此代码,app/Exceptions/Handler,但日志中未显示任何内容:
public function report(Exception $exception)
{
if ($this->isHttpException($exception)) {
if ($exception instanceof NotFoundHttpException) {
Log::warning($message);
return response()->view('error.404', [], 404);
}
return $this->renderHttpException($exception);
}
parent::report($exception);
}
Run Code Online (Sandbox Code Playgroud)
接受 Mozammil 的回答后更新,效果很好。
我已经缩短了他对下面的回答。不要忘记添加use Illuminate\Support\Facades\Log到处理程序文件中。
public function …Run Code Online (Sandbox Code Playgroud) laravel ×10
php ×5
laravel-5.7 ×4
laravel-5 ×3
npm ×2
bootstrap-4 ×1
composer-php ×1
laravel-8 ×1
laravel-9 ×1
laravel-mix ×1
mysql ×1
postgresql ×1
sweetalert2 ×1
symphony-cms ×1