我有这个类和public void initList(){
View box = getLayoutInflater().inflate(R.layout.box, null);
LinearLayout ll_box = (LinearLayout)box.findViewById(R.id.ll_box);
int item = 7;
int idx = item/3; //idx is a number of boxes
if (item%3!=0)
idx++;
for (int i=0; i<idx; i++ ){
for(int j=0; j<3; j++){
ll_box.addView(LayoutInflater.from(this).inflate(R.layout.item, null));
}
ll_list.addView(ll_box);
}
}
变量来计算用户没有读过的消息。我有一个问题,即无论用户是否登录,我只会收到一个空字符串$total_mess
(如果是条件,则为第二个)。
$total_mess
那我怎么解决这个问题呢?
答案 0 :(得分:0)
只需在启动方法中执行此操作,一旦视图准备就绪,它将使您的变量可用,这仅在视图中可用
view()->composer('*', function ($view)
{
if (Auth::check()) {
$total_mess = Chat::whereRaw('view = ? and to_user = ?', [0, Auth::user()->username])->count();
$view->with('total_mess', $total_mess);
}
if (Auth::guest()) {
$view->with('total_mess', $total_mess);
}
});
<强>被修改强>
如果你也想在控制器中访问它,就像视图一样,那么试试这个而不是上面的方法
app()->singleton('total_mess',function($app){
if (Auth::check()) {
$total_mess = Chat::whereRaw('view = ? and to_user = ?', [0, Auth::user()->username])->count();
}
if (Auth::guest()) {
$total_mess = '';
}
return $total_mess;
});
并可以使用此App::make('friend_new_req_count')