【发布时间】:2016-04-13 22:11:20
【问题描述】:
我有以下问题,我想将一个数组共享给我项目中的所有视图,所以我按照文档进行操作,它工作正常,但我想在服务提供者启动功能中获取经过身份验证的用户,它总是返回 null ? 有什么建议么 ?
这是我的代码
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
class AppServiceProvider extends ServiceProvider
{
/**
* Bootstrap any application services.
*
* @return void
*/
public $myusers;
public function boot()
{
$origLat=\Auth::user()->lat;
$origLon=\Auth::user()->lng;
$dist=5;
$lon1=$origLon-$dist/cos(deg2rad($origLat))*73.2044736;
$lon2=$origLon+$dist/cos(deg2rad($origLat));
$lat1=$origLat-($dist/73.2044763);
$lat2=$origLat+($dist/73.2044763);
$id=\Auth::user()->id;
$pictures=User::find($id)->pictures;
$this->myusers = DB::table('users')->select(
DB::raw("*,
3956 * 2 *
ASIN(SQRT( POWER(SIN(($origLat- lat)*pi()/180/2),2)
+COS($origLat*pi()/180 )*COS(lat*pi()/180)
*POWER(SIN(($origLon-lng)*pi()/180/2),2)))*1.609344
as distance"
))
->where('users.id', '!=', \Auth::user()->id)
->whereBetween('lng',[$lon1,$lon2])
->whereBetween('lat',[$lat1,$lat2])
->having("distance", "<", "$dist")
->orderBy("distance")
->get();
view()->share('myusers', $this->myusers);
}
/**
* Register any application services.
*
* @return void
*/
public function register()
{
//
}
}
【问题讨论】:
-
我已经分享了上面的代码有什么建议吗?
-
什么返回null?
Auth::user()->id?你试过Request::user()->id,尝试 var 转储Auth::user(),你得到了什么?在将其发送到视图之前,您可能应该添加一个检查以查看它们是否经过身份验证。 -
我已经尝试了所有这些,它总是返回一个 null 。
标签: laravel-5 laravel-5.2