标签: laravel-5

Laravel 5 - 接口不可实例化

我知道这个问题被问了很多次,但没有一个答案对我有帮助.

我在Laravel 5中遇到了异常

BindingResolutionException in Container.php line 785:
Target [App\Contracts\CustomModelInterface] is not instantiable.
Run Code Online (Sandbox Code Playgroud)

我没做过什么就做了:

  • 注册App\Providers\AppRepositoryProviderapp.php供应商
  • php artisan clear-compiled
  • 如果我替换MyService中的存储库上的接口,一切都有效,但我觉得这是错误的(它应该由IoC容器处理吗?).

结构体:

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)

php repository-pattern laravel laravel-5 laravel-ioc

47
推荐指数
5
解决办法
6万
查看次数

Laravel请求使用查询字符串获取当前路径

是否有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.

php laravel laravel-5 laravel-request

47
推荐指数
5
解决办法
7万
查看次数

如何在Laravel模型上设置属性的默认值

如何在Laravel模型上设置属性的默认值?

我应该在创建迁移时设置默认值还是应该在模型类中设置默认值?

php laravel laravel-5

47
推荐指数
3
解决办法
6万
查看次数

Laravel firstOrNew如何检查它是第一个还是新的?

我正在使用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)

php laravel eloquent laravel-5

46
推荐指数
3
解决办法
4万
查看次数

Laravel 5使用关系查询会导致"在null上调用成员函数addEagerConstraints()"错误

我一直在尝试创建一个简单的用户管理系统,但在查询关系时不断遇到障碍.例如,我有用户角色,每当我尝试对所有用户及其角色进行查询时,我都会收到错误消息.标题中的那个只是我遇到的最新版本.

我的用户和角色模型如下所示:

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)

所以我需要另一双眼睛告诉我这里我缺少什么?

php mysql laravel eloquent laravel-5

46
推荐指数
3
解决办法
3万
查看次数

过滤器在Laravel 5中

我们如何在Laravel 5中制作滤镜?过滤器的想法会消失吗?

laravel laravel-5 laravel-filters

44
推荐指数
4
解决办法
5万
查看次数

在laravel集合对象中添加新元素

我想在$ 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

php laravel-5 laravel-5.1

44
推荐指数
3
解决办法
9万
查看次数

在Laravel中手动注册用户

是否可以手动注册用户(与工匠?)而不是通过身份验证注册页面?

我只需要一些用户帐户,并想知道是否有办法创建这些帐户而无需设置注册控制器和视图.

php laravel laravel-5 laravel-5.2

44
推荐指数
5
解决办法
4万
查看次数

Laravel中服务容器的概念是什么?

我开始研究Laravel,但我不理解Service Container的概念.

它是如何工作的以及开发人员需要知道什么才能在Laravel中充分利用这一概念?

php design-patterns laravel laravel-5 laravel-5.2

44
推荐指数
2
解决办法
1万
查看次数

Laravel在更新后抛出'bootstrap/cache目录必须存在且可写'错误

我使用了'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).

我不知道该怎么做,因为错误似乎不正确.

php laravel composer-php laravel-5

44
推荐指数
6
解决办法
6万
查看次数