我有三个角色:1. Admin2. Client3.Store
我有三张表:1. users2. roles3.role_user
我怎样才能获得所有拥有该角色的用户Client?
我试过这个
$clients = User::roles()->where('App\Models\Role',Role::CLIENT)->get();
Run Code Online (Sandbox Code Playgroud)
我收到以下错误。
不应静态调用非静态方法 App\Models\User::roles()
好榜样
class Role extends Model
{
public const ADMIN = 'Admin';
public const CLIENT = 'Client';
public const STORE = 'Store';
public function users()
{
return $this->belongsToMany('App\Models\User')->using('App\Models\UserRole');
}
}
Run Code Online (Sandbox Code Playgroud)
用户模型
class User extends Authenticatable
{
use Notifiable;
protected $fillable = [
'name',
'first_name',
'last_name',
'email',
'password',
'activated',
'token',
'signup_ip_address',
'signup_confirmation_ip_address',
'signup_sm_ip_address',
'admin_ip_address',
'updated_ip_address',
'deleted_ip_address',
];
protected $hidden = …Run Code Online (Sandbox Code Playgroud) 尝试访问路线时出现以下错误,但需要控制器来加载数据:
(1/1) InvalidArgumentException
Action Facade\Ignition\Http\Controllers\ShareReportController not defined.
Run Code Online (Sandbox Code Playgroud)
我正在使用 Tenancy/Multi-Tenant 包,并将其配置为使用 paths/tenants.php 专门为租户加载路由。如果我在租户.php 文件中执行以下操作,它将返回正确的响应。
Route::get('/test', function() {
return 'Test success';
});
Run Code Online (Sandbox Code Playgroud)
虽然当我尝试做同样的事情时,但从控制器加载数据,如下所示:
Route::get('/testt', 'TenantController@testt');
Run Code Online (Sandbox Code Playgroud)
它将显示错误:
(1/1) InvalidArgumentException
Action Facade\Ignition\Http\Controllers\ShareReportController not defined.
Run Code Online (Sandbox Code Playgroud)
如果我尝试将相同的代码放入 web.php 路由中,那么它可以完美运行。可能是什么问题呢?我的代码中有什么东西吗?可能是因为我使用的多租户包的原因吗?我将如何进一步调试这个?
请我需要帮助,我正在 Laravel 中进行一个项目,当 T 尝试在多对多中使用数据透视表时遇到问题
在我的category model Category.php,我有下面的功能
public function users()
{
return $this->belongsToMany(user::class);
}
Run Code Online (Sandbox Code Playgroud)
在我的user model User.php,我有下面的功能
public function authors()
{
return $this->belongsToMany(author::class);
}
Run Code Online (Sandbox Code Playgroud)
在web.php,我有这个
Route::post('/onboarding', 'OnboardsController@categoryUser');
Run Code Online (Sandbox Code Playgroud)
在 my 中onboarding view,我有一个表格:
<form action="{{ url('/onboarding') }}" method="POST">
@csrf
@foreach($categories as $category)
<div class="radio-item">
<input class="form control" name="category_id" type="checkbox" id="category_id" required>
<label for="name">{{ $category -> title }}</label>
</div>
@endforeach
<div class="form-row">
<div class="form-group col-md-12 text-center">
<button type="submit">Proceed to Authors</button>
</div>
</div>
</form>
Run Code Online (Sandbox Code Playgroud)
在我的 …
我刚刚安装了 Laravel 6.0.2。然后我使用以下命令创建了身份验证。
composer require laravel/ui
php artisan ui:auth
Run Code Online (Sandbox Code Playgroud)
现在,我运行登录页面,它显示如下。
现在我正在设置Layouts.php文件。
<link href="{{ asset('css/app.css') }}" rel="stylesheet">
<script src="{{ asset('js/app.js') }}" defer></script>
Run Code Online (Sandbox Code Playgroud)
我也试过这个。
<link href="{{ asset('public/css/app.css') }}" rel="stylesheet">
<script src="{{ asset('public/js/app.js') }}" defer></script>
Run Code Online (Sandbox Code Playgroud)
在 Laravel 6 之前,CSS 和 JS 的文件夹存在于 public 文件夹中,但现在我找不到那个文件夹。谁能告诉我{{ asset('css/app.css') }}这个asset在 Laravel 6 中的位置是什么?
是否有可能在不使用用户身份验证服务的情况下使用 Gate 授权?
例如我想定义一个门:
Gate::define('morning', function(){
return date('H') < 12;
});
Run Code Online (Sandbox Code Playgroud)
当我这样做Gate::allows('morning')或在控制器$this->authorize('morning')中时总是返回 false,因为没有用户登录。
我怎样才能使这项工作仅适用于来宾用户?
我试图将数据从登录控制器传递到 laravel 6 中的 login.blade.php ,就像我在整个应用程序中使用通用标头一样,所以我必须创建动态标题和描述。默认登录控制器是这样的
class LoginController extends Controller
{
protected $redirectTo = RouteServiceProvider::HOME;
public function __construct()
{
$this->middleware('guest')->except('logout');
}
}
Run Code Online (Sandbox Code Playgroud)
不知道怎么通过。请帮忙
我正在尝试将数据传递给 laravel 刀片并显示它。显然我错过了一些非常基本的东西。如果我使用 laravel format {{ $test_message }},它不会显示该值。如果我使用<?php echo $test_message ; ?>. 这是工作。来自我的控制器的代码 -
$data = ['message' => 'This is a test!'];
return view('test')->with([ 'test_message' => $data['message'] ]);
Run Code Online (Sandbox Code Playgroud)
看法
<html lang="en-US">
<head>
<meta charset="utf-8">
</head>
<body>
<p> <?php echo $test_message ; ?> </p>
<p> {{ $test_message }} </p>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
在输出中,我有“这是一个测试!” php 回显部分和 {{$test_message}} 下一行。
所以考虑一下服务提供商,是的,我知道我在两个地方注册了这个命令,但请给我一点时间来解释:
<?php
namespace App\Modules\Core\Providers;
use Illuminate\Support\ServiceProvider;
use Illuminate\Contracts\Support\DeferrableProvider;
use Illuminate\Foundation\AliasLoader;
use App\Modules\Core\Handlers\RedirectHandler;
use App\Modules\Core\Console\Commands\CreateAdminUser;
use App\Modules\Core\Values\IsMedicalRecordEmpty;
class CoreProvider extends ServiceProvider
{
protected $commands = [
CreateAdminUser::class,
];
/**
* Register services.
*
* @return void
*/
public function register()
{
$this->app->bind(RedirectHandler::class, function($app) {
return new RedirectHandler();
});
$this->app->bind(IsMedicalRecordEmpty::class, function($app) {
return new IsMedicalRecordEmpty();
});
}
public function register() {
$this->commands($this->commands);
}
/**
* Bootstrap services.
*
* @return void
*/
public function boot()
{
if ($this->app->runningInConsole()) {
$this->commands([
CreateAdminUser::class,
]); …Run Code Online (Sandbox Code Playgroud) 我有这个雄辩的查询:
$users = User::query()
->addSelect([
'latest_login' => Login::select('login_time')
->where('logins.user_id', 'users.id')
->latest('login_time')
->take(1)
])
->orderBy('latest_login', 'DESC')
->get();
Run Code Online (Sandbox Code Playgroud)
问题是“latest_login”字段始终为空。
但是,如果我在 mysql 中运行查询,该字段将被完全填充:
'SELECT `users`.*, (SELECT `login_time` FROM `logins` WHERE `user_id` = users.id AND `login_time` IS NOT NULL ORDER BY `login_time` DESC LIMIT 1) AS `last_login` FROM `users` WHERE `logged_in` > 0 ORDER BY `last_login` DESC
Run Code Online (Sandbox Code Playgroud)
我还尝试使用 DB::select() 在 Laravel 中运行原始查询,并且该字段也返回 null。
有什么想法吗?
我试图根据Laravel 文档在控制器的 __construct 中分配一个中间件,但它会引发以下错误:
BadMethodCallException
Method App\Http\Controllers\MyController::middlware does not exist.
Run Code Online (Sandbox Code Playgroud)
这是我的控制器类:
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class MyController extends Controller
{
public function __construct()
{
$this->middleware('myauth');
}
/** something */
public function index()
{
return view('test.hi', ['name' => 'Moh']);
}
}
Run Code Online (Sandbox Code Playgroud)
这是中间件代码:
<?php
namespace App\Http\Middleware;
use Closure;
class myauth
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
echo …Run Code Online (Sandbox Code Playgroud) 这是我做的第一件事
php artisan make:auth
Run Code Online (Sandbox Code Playgroud)
结果:
Run Code Online (Sandbox Code Playgroud)Command "make:auth" is not defined. Did you mean one of these? make:channel make:command make:controller make:event make:exception make:factory make:job make:listener make:mail make:middleware make:migration make:model make:notification make:observer make:policy make:provider make:request make:resource make:rule make:seeder make:test
第二个:
php artisan ui vue --auth php artisan ui react --auth
我试过这个,这是结果
Run Code Online (Sandbox Code Playgroud)The "http://repo.packagist.org/p/provider-2015%24e84cdb7b9b7175f18a814c1783741a3ba6b021c4a78701285cc5639d0d1ee4e6.json"文件无法下载:无法打开流:HTTP 请求失败!
Run Code Online (Sandbox Code Playgroud)http://repo.packagist.org could not be fully loaded, package information was loaded from the local cache and may be out of date
我该怎么办?-谢谢
我对 Laravel 和学说完全陌生,一开始我选择 Laravel 6 并阅读了一些教程。正如我所见,将 Doctrine 与 Laravel 一起使用会更好,然后我尝试将 Doctrine 安装到我的项目中,但不幸的是,它失败了。
是不是因为 Laravel 6 是新的并且还不支持 Doctrine?或者我做错了什么?
我在作曲家上试过这个命令
composer require "laravel-doctrine/orm:1.3.*"
Run Code Online (Sandbox Code Playgroud)
它给了我一些错误,例如
然后,我尝试遵循 6.x 版的 Laravel 文档,并在数据库部分发现它提到在修改列之前安装学说/dbal
在修改一个列之前,一定要添加到你的 composer.json 文件中的 dotric/dbal 依赖。Doctrine DBAL 库用于确定列的当前状态并创建对列进行指定调整所需的 SQL 查询:
作曲家需要学说/dbal
但是,这个命令也会导致我出现同样的错误。
请指导我走正确的道路。谢谢你。
laravel ×12
laravel-6 ×12
php ×8
doctrine ×1
doctrine-orm ×1
eloquent ×1
multi-tenant ×1
mysql ×1
php-7 ×1