这是一个非常奇怪的问题。我有一个完美的Laravel 5.2应用程序。然后我更新到Laravel 5.3以使用新的广播功能,我面临一个大问题。
当我更新数据(使用我的申请表格或直接在我的数据库中)时,会正确更新注释。我尝试清除缓存,视图和配置,但没有任何变化......我需要去其他一些页面并通过显示数据完成......
我有一个Campaign
模型和一个列出广告系列的页面。当我直接在数据库中删除条目时,列表不会在前面更改。此外,当我使用dd
等调试函数时,结果告诉我数据没有改变......
还有其他人面临同样的问题吗?
我已按照迁移指南将5.2更新为5.3,也许我忘记了某些内容......
这是我的.env
文件的一部分:
DB_CONNECTION=mysql
BROADCAST_DRIVER=redis
CACHE_DRIVER=array
SESSION_DRIVER=file
QUEUE_DRIVER=database
谢谢!
答案 0 :(得分:1)
感谢您分享这些问题。
Laravel成功升级到5.3版本,并且有一些弃用和应用程序服务提供商,还增加了一些新功能,如护照。
你的问题是有观点的。据我所知,您需要从" boot"中删除参数。 EventServiceProvider
RouteServiceProvider
,AuthServiceProvider
,app/provider/remove_the_arguments_from_boot_method_given_file
中编写的方法
在Laravel 5.2中:
public function boot(GateContract $gate)
{
$this->registerPolicies($gate);
}
但是在Laravel 5.3中:
public function boot()
{
parent::boot();
}
我希望,这适合你。
谢谢和问候。
答案 1 :(得分:0)
经过一天的搜索和重构后,我发现了我原来的问题!
这是一个简单的session()
语句,导致我的应用程序显示无效数据。
仪表板显示链接到客户端的广告系列列表。用户可以管理多个客户端,因此我将当前客户端置于会话中以了解当前使用的客户端。
这里的错误是我将整个客户端模型放在会话中,所以当我读取会话并检索数据时,也会检索所有关系。
客户端是访问我的应用程序中数据的中心点。我检索链接到我的客户的广告系列,所有内容都与之相关。
这里的恶性功能:
/**
* Retrieve the current client instance when the user is connected
* @return App\Client|null
*/
protected function retrieveCurrentClient()
{
$client = null;
if (Gate::allows('manage-clients')) {
if (null === $client = session('currentClient')) {
$client = Client::all()->first();
session(['currentClient' => $client]);
}
} elseif (Auth::guard()->check()) {
$client = Auth::guard()->user()->client;
}
return $client;
}
事实上,当我在Gate定义中挖掘时,问题出现了。如果我删除它们,我的应用程序将重新开始工作......
我只是将函数更改为存储在会话客户端ID中而不是完整的模型。然后我在我的应用程序的每个页面中检索新数据。
/**
* Retrieve the current client instance when the user is connected
* @return App\Client|null
*/
protected function retrieveCurrentClient()
{
$client = null;
if (Gate::allows('manage-clients')) {
if (null === $client_id = session('client_id')) {
$client = Client::all()->first();
session(['client_id' => $client->id]);
} else {
$client = Client::findOrFail($client_id);
}
} elseif (Auth::guard()->check()) {
$client = Auth::guard()->user()->client;
}
return $client;
}
不知道是否可以帮助别人避免这些错误,但很高兴能找到答案!