语法错误,意外的“=>”(T_DOUBLE_ARROW)
syntax error, unexpected '=>' (T_DOUBLE_ARROW)
上下文
我刚刚使用 Laravel/Jetstream 和 Inertia 开发了一个内部业务应用程序,它使用了一个模型广播器,Ably 集成了桌面通知。一切都在本地完美运行,所以我今天下午上线了。我已迁移所有内容,似乎已正确设置,并且 https 正常工作。
服务器是 DO 上的 LEMP 液滴
Link到图片详情:https://marketplace.digitalocean.com/apps/lemp?ipAddress=143.198.148.3#getting-started
问题:
我读到的关于这个问题的所有内容都说它可能是 php 早于 7.4 的版本问题,但这里不是这种情况
phpinfo()的结果:(我今天刚注册,所以不能包含图片)
PHP 版本 7.4.3
图片位于:
https://i.ibb.co/C1qZyjZ/Screen-Shot-2021-07-21-at-3-56-20-PM.png
var_dump(PHP_VERSION)
的结果
字符串(5)“7.4.3”
我的 Model Broadcaster 内部是错误的来源。
<pre><code>namespace App\Models;
use Illuminate\Broadcasting\PrivateChannel;
use Illuminate\Database\Eloquent\BroadcastsEvents;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Broadcasting\Channel;
class Ticket extends Model
{
use BroadcastsEvents, HasFactory;
/**
* Get the channels that model events should broadcast on.
*
* @param string $event
* @return \Illuminate\Broadcasting\Channel|array
*/
public function broadcastOn($event)
{
return match($event) {
//
//This is the line
//
'created' => [new Channel('ticket')],
default => []
};
}
}
Laravel 显示相同格式的文档:
https://laravel.com/docs/8.x/broadcasting#model-broadcasting
<pre><code>/**
* Get the channels that model events should broadcast on.
*
* @param string $event
* @return \Illuminate\Broadcasting\Channel|array
*/
public function broadcastOn($event)
{
return match($event) {
'deleted' => [],
default => [$this, $this->user],
};
}
匹配是 php8 特征。您可以将 php7.4 更新为 8 或使用 switch
switch($event)
case 'created':
return [new Channel('ticket')];
default:
return [];
endswitch;
上下文 我刚刚使用 Laravel/Jetstream 和 Inertia 开发了一个内部业务应用程序,它使用了一个模型广播器,Ably 集成了桌面通知。一切都在本地完美运行,所以我今天下午上线了。我已迁移所有内容,似乎已正确设置,并且 https 正常工作。
服务器是 DO 上的 LEMP 液滴 Link到图片详情:https://marketplace.digitalocean.com/apps/lemp?ipAddress=143.198.148.3#getting-started
问题: 我读到的关于这个问题的所有内容都说它可能是 php 早于 7.4 的版本问题,但这里不是这种情况
phpinfo()的结果:(我今天刚注册,所以不能包含图片)
PHP 版本 7.4.3
图片位于: https://i.ibb.co/C1qZyjZ/Screen-Shot-2021-07-21-at-3-56-20-PM.png
var_dump(PHP_VERSION)
的结果字符串(5)“7.4.3”
我的 Model Broadcaster 内部是错误的来源。
<pre><code>namespace App\Models;
use Illuminate\Broadcasting\PrivateChannel;
use Illuminate\Database\Eloquent\BroadcastsEvents;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Broadcasting\Channel;
class Ticket extends Model
{
use BroadcastsEvents, HasFactory;
/**
* Get the channels that model events should broadcast on.
*
* @param string $event
* @return \Illuminate\Broadcasting\Channel|array
*/
public function broadcastOn($event)
{
return match($event) {
//
//This is the line
//
'created' => [new Channel('ticket')],
default => []
};
}
}
Laravel 显示相同格式的文档: https://laravel.com/docs/8.x/broadcasting#model-broadcasting
<pre><code>/**
* Get the channels that model events should broadcast on.
*
* @param string $event
* @return \Illuminate\Broadcasting\Channel|array
*/
public function broadcastOn($event)
{
return match($event) {
'deleted' => [],
default => [$this, $this->user],
};
}
匹配是 php8 特征。您可以将 php7.4 更新为 8 或使用 switch
switch($event)
case 'created':
return [new Channel('ticket')];
default:
return [];
endswitch;