小编Kar*_*ill的帖子

迁移到 Laravel 9 后出现“用户未设置”IncompleteDsnException

我使用的是 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 语句中时,一切正常,而不是抛出异常。有谁知道这个问题的解决方案以及为什么会发生这种情况

php symphony-cms laravel laravel-8 laravel-9

5
推荐指数
1
解决办法
3602
查看次数

Larval SQLSTATE [42000]:语法错误或访问冲突:1055表达式#2

它可能是显而易见的,我完全忽略了这一点,但我有一个表包含多行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)

php mysql laravel mysql-error-1055

4
推荐指数
2
解决办法
3066
查看次数

Laravel如何从Database Seeder调用Console命令

我正在为我的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吗?

php laravel

4
推荐指数
1
解决办法
1988
查看次数

在 Laravel 5.7 中限制登录尝试

我有带有自定义登录的 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)

php laravel laravel-5 laravel-5.7

4
推荐指数
2
解决办法
8366
查看次数

如何在Laravel中查找无效文本表示形式的列名称7整数的错误错误输入语法?

例如,我有一张桌子...

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列时,要找到有问题的列是一个挑战。

postgresql laravel

4
推荐指数
1
解决办法
202
查看次数

我需要在服务器上安装 Composer 吗?

我正在尝试部署 Laravel 应用程序,想知道 Composer 是否需要单独安装在服务器上?

laravel composer-php

4
推荐指数
1
解决办法
8471
查看次数

限制单词而不是Laravel中的字符

我正在使用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?

php laravel laravel-5 laravel-5.7

4
推荐指数
1
解决办法
1761
查看次数

如何通过Laravel-Mix安装sweetalert2?

第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

缺少的步骤是什么?

npm laravel laravel-mix sweetalert2

4
推荐指数
1
解决办法
1028
查看次数

使用Laravel 5.7进行Bootstrap 4安装

我正在尝试从Laravel编译新项目随附的app.scss文件,但我想安装Bootstrap4。在执行此操作时,我npm run dev没有安装Bootstrap 4,但默认情况下它仍然具有Laravel带来的Bootstrap。 。

有什么建议或文档吗?

在此处输入图片说明

npm laravel laravel-5 bootstrap-4 laravel-5.7

4
推荐指数
2
解决办法
2万
查看次数

Laravel 5.7 如何使用 URL 记录 404

我想在 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 laravel-exceptions laravel-5.7

4
推荐指数
1
解决办法
2756
查看次数