Php ErrorException(E#u通知)试图获取属性';默认语言环境';非对象的。我似乎找不到这里的问题
它返回非对象是否可以替换?检查Php ErrorException(E#u通知)试图获取属性';默认语言环境';非对象的。我似乎找不到这里的问题,php,mysql,laravel,vue.js,composer-php,Php,Mysql,Laravel,Vue.js,Composer Php,它返回非对象是否可以替换?检查Webkul\Core\Contracts\Channel数据是否存在,以及config('app.Channel')validWebkul\Core\Contracts\Channel.php类是否为空。它可以包装成optional这样的optional(optional(Core()->getDefaultChannel())->default\u locale)->代码??config('app.fallback\u locale')我明白了,这是因为数据库中
Webkul\Core\Contracts\Channel
数据是否存在,以及config('app.Channel')
validWebkul\Core\Contracts\Channel.php类是否为空。它可以包装成optional
这样的optional(optional(Core()->getDefaultChannel())->default\u locale)->代码??config('app.fallback\u locale')
我明白了,这是因为数据库中不知道应该保存默认\u locale的列名,所以没有任何内容。如果无法读取列对象,有没有办法将其更改为null?或者绕过这个要求?这与MySQL、vue.js或Composer有什么关系?
<?php
namespace Webkul\Shop\Http\Middleware;
use Webkul\Core\Repositories\LocaleRepository;
use Closure;
class Locale
{
/**
* @var LocaleRepository
*/
protected $locale;
/**
* @param \Webkul\Core\Repositories\LocaleRepository $locale
*/
public function __construct(LocaleRepository $locale)
{
$this->locale = $locale;
}
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
$locale = request()->get('locale');
if ($locale) {
if ($this->locale->findOneByField('code', $locale)) {
app()->setLocale($locale);
session()->put('locale', $locale);
}
} else {
if ($locale = session()->get('locale')) {
app()->setLocale($locale);
} else {
app()->setLocale(core()->getDefaultChannel()->default_locale->code);
}
}
unset($request['locale']);
return $next($request);
}
}
core()->getDefaultChannel()