我知道这个问题被问了很多次,但没有一个答案对我有帮助.
我在Laravel 5中遇到了异常
BindingResolutionException in Container.php line 785:
Target [App\Contracts\CustomModelInterface] is not instantiable.
Run Code Online (Sandbox Code Playgroud)
我没做过什么就做了:
App\Providers\AppRepositoryProvider的app.php供应商php artisan clear-compiled结构体:
app
- Contracts
- CustomModelInterface.php
- Models
- CustomModel.php
- Repositories
- CustomModelRepository.php
- Providers
- AppRepositoryProvider.php
- Services
- MyService.php
Run Code Online (Sandbox Code Playgroud)
应用程序\合同\ CustomModelInterface.php
<?php namespace App\Contracts;
interface CustomModelInterface {
public function get();
}
Run Code Online (Sandbox Code Playgroud)
应用程序\库\ CustomModelRepository.php
<?php namespace App\Repositories;
use App\Contracts\CustomModelInterface;
use App\Models\CustomModel;
class CustomModelRepository implements CustomModelInterface {
private $Model;
public function __construct(CustomModel $model) {
$this->Model = …Run Code Online (Sandbox Code Playgroud) 是否有Laravel方法来获取具有查询参数的Request的当前路径?
例如,对于URL:
http://www.example.com/one/two?key=value
Run Code Online (Sandbox Code Playgroud)
Request::getPathInfo()会回来的/one/two.
Request::url()会回来的http://www.example.com/one/two.
期望的输出是/one/two?key=value.
如何在Laravel模型上设置属性的默认值?
我应该在创建迁移时设置默认值还是应该在模型类中设置默认值?
我正在使用Laravel的功能firstOrNew()来创建新用户或查找和更新现有用户.
在创建对象之后,如果它之前存在或者它是新对象,我怎么知道?
这个想法是这样的:
$user = \App\User::firstOrNew([
'email' => $userData->getEmail(),
'name' => $userData->getName(),
]);
if ($user->new) { // some way to check
// user was created now
} else {
//user already existed
}
Run Code Online (Sandbox Code Playgroud) 我一直在尝试创建一个简单的用户管理系统,但在查询关系时不断遇到障碍.例如,我有用户和角色,每当我尝试对所有用户及其角色进行查询时,我都会收到错误消息.标题中的那个只是我遇到的最新版本.
我的用户和角色模型如下所示:
class Role extends Model
{
public function users()
{
$this->belongsToMany('\App\User', 'fk_role_user', 'role_id', 'user_id');
}
}
Run Code Online (Sandbox Code Playgroud)
class User extends Model
{
public function roles()
{
$this->belongsToMany('\App\Role', 'fk_user_role', 'user_id', 'role_id');
}
}
Run Code Online (Sandbox Code Playgroud)
我的迁移表中两者之间的多对多关系如下所示:
public function up()
{
Schema::create('role_user', function (Blueprint $table) {
$table->increments('id');
$table->integer('user_id')->unsigned()->nullable(); //fk => users
$table->integer('role_id')->unsigned()->nullable(); //fk => roles
$table->foreign('fk_user_role')->references('id')->on('users')->onDelete('cascade');
$table->foreign('fk_role_user')->references('id')->on('roles')->onDelete('cascade');
});
}
Run Code Online (Sandbox Code Playgroud)
然后我尝试在控制器中获取他们关系的所有记录:
public function index()
{
$users = User::with('roles')->get();
return $users;
}
Run Code Online (Sandbox Code Playgroud)
所以我需要另一双眼睛告诉我这里我缺少什么?
我们如何在Laravel 5中制作滤镜?过滤器的想法会消失吗?
我想在$ items数组中添加新元素,我不想出于某些原因使用连接.
$items = DB::select(DB::raw('SELECT * FROM items WHERE items.id = '.$id.' ;'));
foreach($items as $item){
$product = DB::select(DB::raw(' select * from product
where product_id = '. $id.';' ));
$item->push($product);
}
Run Code Online (Sandbox Code Playgroud)
我应该怎么做,请提前帮助thnx
是否可以手动注册用户(与工匠?)而不是通过身份验证注册页面?
我只需要一些用户帐户,并想知道是否有办法创建这些帐户而无需设置注册控制器和视图.
我开始研究Laravel,但我不理解Service Container的概念.
它是如何工作的以及开发人员需要知道什么才能在Laravel中充分利用这一概念?
我使用了'composer update',它更新了一些软件包.在更新过程中,网站仍然有效.但是,在显示"已编译的服务文件已被删除"之后,该网站未加载,而是说:
Exception in ProviderRepository.php line 190:
The bootstrap/cache directory must be present and writable.
Run Code Online (Sandbox Code Playgroud)
最奇怪的是,当我再次运行'composer update'时,网站再次开始工作,直到删除编译的服务文件,此时它再次抛出相同的错误.我已经尝试了当出现此错误时应该执行的常规操作(chown -R all to right user/group and chmod all files and files 664和775).
我不知道该怎么做,因为错误似乎不正确.
laravel-5 ×10
laravel ×9
php ×9
eloquent ×2
laravel-5.2 ×2
composer-php ×1
laravel-5.1 ×1
laravel-ioc ×1
mysql ×1