如果新用户至少未登录应用程序一次,我试图在datatables按钮下拉菜单中隐藏“重新发送欢迎”链接。我的users表上有一个“login\u count”列,默认为零。一旦用户登录到他们的帐户,它会增加他们每签入一次的次数。我正在尝试向datatables按钮刀片添加if_语句,但似乎无法构造正确使用$row的语句-
我试图构建if语句,如果“login_count”等于零,则显示链接,否则隐藏链接。我的问题是,我似乎找不到正确的方法将if语句与数据库行id连接起来。(我还有一个默认为null的“last_login_at”日期列,如果出于某种原因,最好将条件构建在null选项而不是count等于零选项的日期上)
我的按钮动作。刀片:
@can($gateKey.'view')
<div class="pull-right" style="white-space: nowrap; min-width: 80px;"><div class="btn-group" style="white-space: nowrap;">
<a href="{{ route($routeKey.'.show', $row->id) }}" class="btn btn-sm btn-default">@lang('global.app_view')</a>
<a class="btn btn-default btn-sm dropdown-toggle" data-toggle="dropdown" href="#">
<span class="caret"></span>
</a><ul class="dropdown-menu pull-right">
{{-- This is the Link I want to build the if-statement around --}}
<li><a href="{{route('admin.users.resend_welcome',$row->id)}}" >@lang('global.app_resend_welcome_letter')</a></li>
@if(auth()->user()->role->contains(1))
<li><a href="{{route('admin.impersonate.impersonate',$row->id)}}" >@lang('global.app_troubleshoot_user')</a></li>
@endif
@can($gateKey.'edit')
<li><a href="{{ route($routeKey.'.edit', $row->id) }}">@lang('global.app_edit')</a></li>
@endcan
@can($gateKey.'delete')
<li>
{!! Form::open(array(
'style' => 'display: inline-block;',
'method' => 'DELETE',
'onsubmit' => "return confirm('".trans("global.app_are_you_sure_delete")."');",
'route' => [$routeKey.'.destroy', $row->id])) !!}
{!! Form::submit(trans('global.app_delete'), array('class' => 'btn btn-link')) !!}
{!! Form::close() !!}
</li>
@endcan
</ul>
</div>
</div>
@endcan
这是我index.blade的Ajax数据表部分:
<script>
@can('user_delete')
@if ( request('show_deleted') != 1 )window.route_mass_crud_entries_destroy = '{{ route('admin.users.mass_destroy') }}'; @endif
@endcan
$(document).ready(function () {
window.dtDefaultOptions.ajax = '{!! route('admin.users.index') !!}?show_deleted={{ request('show_deleted') }}';
window.dtDefaultOptions.stateSave = true;
//window.dtDefaultOptions.scrollY = '50vh';
window.dtDefaultOptions.scrollCollapse = true;
window.dtDefaultOptions.columns = [@can('user_delete')
@if ( request('show_deleted') != 1 )
{data: 'massDelete', name: 'id', searchable: false, sortable: false},
@endif
@endcan{data: 'name', name: 'name'},
{data: 'email', name: 'email'},
{data: 'phone', name: 'phone'},
{data: 'role.title', name: 'role.title'},
@if(auth()->user()->role->contains(1))
{data: 'team.name', name: 'team.name'},
@endif
{data: 'last_login_at', name: 'last_login_at'},
{data: 'login_count', name: 'login_count'},
//This is where the Button action ties into the datatables table
{data: 'actions', name: 'actions', searchable: false, sortable: false}
];
processAjaxTables();
});
</script>
这是我要求的控制器:
public function index()
{
if (! Gate::allows('user_access')) {
return abort(401, 'Sorry you are not authorized for this action at this time');
}
if ($filterBy = Input::get('filter')) {
if ($filterBy == 'all') {
Session::put('User.filter', 'all');
} elseif ($filterBy == 'my') {
Session::put('User.filter', 'my');
}
}
if (request()->ajax()) {
$query = User::query();
$query->with("role");
$query->with("team");
$query->with("created_by");
$query->with("created_by_team");
$template = 'usersActionsTemplate';
if(request('show_deleted') == 1) {
if (!Gate::allows('interest_delete')) {
return abort(401, 'Sorry you are not authorized for this action at this time');
}
$query->onlyTrashed();
$template = 'restoreTemplate';
}
$query->select([
'users.id',
'users.name',
'users.email',
'users.phone',
'users.password',
'users.team_id',
'users.remember_token',
// 'users.created_by_id',
'users.last_login_at',
'users.login_count',
// 'users.created_by_team_id',
]);
$table = Datatables::of($query);
$table->setRowAttr([
'data-entry-id' => '{{$id}}',
]);
$table->addColumn('massDelete', ' ');
$table->addColumn('actions', ' ');
$table->editColumn('actions', function ($row) use ($template) {
$gateKey = 'user_';
$routeKey = 'admin.users';
return view($template, compact('row', 'gateKey', 'routeKey'));
});
$table->editColumn('phone', function ($row) {
return $row->phone ? $row->phone : '';
});
$table->editColumn('password', function ($row) {
return '---';
});
$table->editColumn('role.title', function ($row) {
if(count($row->role) == 0) {
return '';
}
return '<span class="label label-default label-many">' . implode('</span><span class="label label-info label-many"> ',
$row->role->pluck('title')->toArray()) . '</span>';
});
$table->editColumn('team.name', function ($row) {
return $row->team ? $row->team->name : '';
});
$table->editColumn('remember_token', function ($row) {
return $row->remember_token ? $row->remember_token : '';
});
$table->editColumn('last_login_at', function ($row) {
return $row->last_login_at ? $row->last_login_at : '';
});
$table->editColumn('login_count', function ($row) {
return $row->login_count ? $row->login_count : '';
});
// $table->editColumn('created_by.name', function ($row) {
// return $row->created_by ? $row->created_by->name : '';
// });
// $table->editColumn('created_by_team.name', function ($row) {
// return $row->created_by_team ? $row->created_by_team->name : '';
// });
$table->rawColumns(['actions','massDelete','role.title']);
return $table->make(true);
}
return view('admin.users.index');
我可以通过角色或活动用户来调节此按钮链接,但无论出于何种原因,我似乎无法找到一种基于数据库$row来调节此链接的方法-
有什么想法吗?
系统说这个评论是长时间添加在评论部分,所以我会把它添加到帖子中。
什么@if(Auth::user())-
我需要它,以便在所有不同用户的表索引列表中,过去登录过的用户不会在其行按钮下拉菜单中显示链接,但任何从未登录过的用户都会在其行按钮下拉菜单中看到“重新发送欢迎”链接。
只需更改视图文件,添加条件。就像
@if($row->login_count < 1)
<li><a href="{{route('admin.users.resend_welcome',$row->id)}}" >@lang('global.app_resend_welcome_letter')</a></li>
@endif
在flutter中,我需要更多的灵活性来呈现/取消下拉按钮的选择列表。我希望能够显示/隐藏DropdownButton作为其他用户操作的结果,而不是单击它。文档中似乎没有公开这些方法。做这件事的好方法是什么?
问题内容: 我在显示从数据库到下拉列表的数据时遇到了困难。 这是我尝试过的: 模型.php Controller.php View.php 但是结果显示在我的页面顶部。它没有出现在下拉列表中。我在这里做错了什么?非常感谢您的帮助。谢谢。 问题答案: 您不应该从视图中调用模型。而是在加载视图之前尝试调用模型和设置。 也不要在模型中回显行结果,除非您希望将其显示在页面上。 控制器: 模型: 视图:
我正在学习Bootstrap 4,我已经成功地把我的navbar中的内容变成了汉堡菜单,就像我想要的那样,在更小的屏幕尺寸下。我现在遇到的问题是,成为汉堡菜单的其中一个东西是一个Browse按钮,它以更大的屏幕尺寸显示下拉列表: 在较小的屏幕尺寸下,它确实变成了一个汉堡包菜单,但当我点击汉堡包菜单时,浏览按钮就会出现在它的右边,而这并不是我想要的: 我正在尝试消除在较小屏幕尺寸的点击,并使汉堡包菜
主要内容:实例,分割的按钮下拉菜单,实例,按钮下拉菜单的大小,实例,按钮上拉菜单,实例本章将讲解如何使用 Bootstrap class 向按钮添加下拉菜单。如需向按钮添加下拉菜单,只需要简单地在一个 .btn-group 容器中放置按钮和下拉菜单即可。您也可以使用 <span class="caret"></span> 来指示按钮作为下拉菜单。 下面的实例演示了一个基本的简单的按钮下拉菜单: 实例 <div class="btn-group"> <button type="but
我的引导菜单中有下拉列表。 我试图在下拉列表中选择选项作为下拉列表的标题,而不是“选择选项”,就像现在一样。我已经尝试了在这个和其他一些网站上找到的几个解决方案,但无法使它们中的任何一个工作。 有人能帮忙吗?
我的菜单显示向下,但然后水平。 我希望每一个导航项目都显示下来,在彼此的上面。 现场测试站点URL:ministerios-elim.herokuapp.com CodePen:(无法使菜单在单击CodePen时出现)。 https://codepen.io/ogonzales/pen/abnqxlg 更新2: 更新3: