我正在尝试创建一个欢迎电子邮件,该电子邮件的按钮可以链接回我的Laravel项目中的用户个人资料,但似乎无法正常工作。这是我的代码:
@component('mail::message')
Thanks for signing up {{ $user->fn }}
@component('mail::button', ['url' => 'https://site.dev/users/{{ $user->id }}'])
Check out your profile!
@endcomponent
<br>
{{ config('app.name') }}
@endcomponent
当我尝试此操作时,电子邮件会发送,但链接到
https://site.dev/users/%3C?php%20echo%20e(%user-%3Eid);%20?%3E
如何通过类似url的方式使它正常工作
https://site.dev/users/1
我可以访问用户模型特征,但是在这种情况下不能使用Blade指令,我还能如何使其工作?
答案 0 :(得分:2)
Laravel渲染了一个.blade.php
文件,在此过程中,各种Blade标签被转换为PHP以执行。例如,{{ $variable }}
被转换为<?php e($variable); ?>
。
在将参数传递给组件时,不需要使用Blade标签,参数传递的方式与在控制器或模型中调用方法时传递参数的方式相同。组件参数使用纯PHP定义,不涉及Blade。
您可以像这样连接字符串:
@component('mail::button', ['url' => 'https://site.dev/users/' . $user->id])
Check out your profile!
@endcomponent
或者您可以在双引号中使用大括号:
@component('mail::button', ['url' => "https://site.dev/users/{$user->id}"])
Check out your profile!
@endcomponent
或者您可以使用路线助手(推荐):
@component('mail::button', ['url' => route('users.show', ['id' => $user->id])])
Check out your profile!
@endcomponent