小编jed*_*ylo的帖子

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中禁用特定路由的csrf

我有一个支付系统,数据提交给第三方网站,而不是拖回...

当数据返回时它命中特定的url让我们说/ ok route.$_REQUEST['transaction'].

但由于laravel中间件,我得到令牌不匹配.第三方支付API无法生成令牌,所以我如何禁用它?只为这条路线?

还是有更好的选择?

Route::get('/payment/ok',   'TransactionsController@Ok');
Route::get('/payment/fail', 'TransactionsController@Fail');

public function Ok( Request $request )
{
    $transId = $request->get('trans_id');

    if ( isset( $transId ) )
    {

        return $transId;

    }

}
Run Code Online (Sandbox Code Playgroud)

php laravel laravel-5 laravel-5.1

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

Laravel的BelongsTo和HasOne有什么区别?

任何机构可以告诉我是什么样的区别主要
属于关联HasOne的关系雄辩.

php laravel eloquent laravel-5

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

如何禁用Laravel 5日志文件?

我的Laravel 5网站正在使用1 GB磁盘空间的共享主机.但现在我有大约100 MB的日志文件.如何在Laravel 5中禁用日志文件

php laravel laravel-5

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

Request :: all()中的未定义方法

我尝试了Laravel.com的入门指南.

创建任务有一章.有$request一个回调参数,在函数$request->all()中用于获取GET参数.但是,如果我执行该回调,我会得到错误

致命错误:调用未定义的方法Illuminate\Support\Facades\Request :: all()

这是我的代码:

Route::post('/task', function(Request $request) {

    $validator = Validator::make($request->all(), [
        'name' => 'required|max:255',
    ]);

    if($validator->fails())
        redirect('/')->withInput()->withErrors($validator);

    $task = new Task();
    $task->name = $request['name'];
    $task->save();

    return redirect('/');
});
Run Code Online (Sandbox Code Playgroud)

php laravel laravel-5

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

Laravel 5.1 date_format验证允许两种格式

我对传入的POST请求使用以下日期验证.

'trep_txn_date' => 'date_format:"Y-m-d H:i:s.u"'
Run Code Online (Sandbox Code Playgroud)

这只允许这种日期,即2012-01-21 15:59:44.8

我也想允许没有TIME的日期,例如2012-01-21,当发送到mysql db时会自动存储为2012-01-21 00:00:00.0

有没有办法可以使用Laravel现有的验证规则来实现这一点.有没有办法在date_format规则中定义多种格式,如下所示.

'trep_txn_date' => 'date_format:"Y-m-d H:i:s.u","Y-m-d"' //btw this didn't work.
Run Code Online (Sandbox Code Playgroud)

谢谢,

ķ

php date-format laravel laravel-5

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

Laravel Eloquent:计算总价的最佳方式

我正在用Laravel 5.1构建一个简单的买卖应用程序.每个购买模型都有许多BuyDetail,它存储购买的商品数量和buy_price.我已经在Model上实现了表之间的关系.

class Buy extends Model
{
  #Eloquent relationships

  public function supplier()
  {
    return $this->belongsTo('App\Supplier');
  }

  public function buyDetails()
  {
    return $this->hasMany('App\BuyDetail');
  }
}
Run Code Online (Sandbox Code Playgroud)

我想计算每次购买的总价.使用Eloquent ORM计算总价的最佳方法是什么?

现在我只是这样实现它:

@foreach($buys as $key => $value)
    <?php
        $total = 0;
    ?>
    @foreach($value->buyDetails as $k => $bD)
        <?php
            $total += ($bD['buy_price']*$bD['qty']);
    ?>
    @endforeach

   <tr>
    <td>{{$value->ref_number}}</td>
    <td>{{$value->suplier->name}}</td>
    <td>{{$value->created_at}}</td>
    <td>{{$value->buyDetails->count()}}</td>
    <td>{{$total}}</td>
    <td>
        <a href="" class="btn btn-default btn-sm" title="show">Detail</a>
        <a href="" class="btn btn-primary btn-sm" title="edit">Edit</a>
        <a href="" class="btn btn-danger btn-sm" title="delete">Delete</a>
    </td>
  </tr>
@endforeach
Run Code Online (Sandbox Code Playgroud)

php laravel eloquent laravel-5 laravel-5.1

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

如何在Laravel 5中按键获取所有缓存项目的列表?

laravel中的Cache类具有诸如get('itemKey')之类的方法来从缓存中检索项目,并记住('itemKey',['myData1','myData2'])以将项目保存在缓存中.

还有一种方法可以检查缓存中是否存在项目:Cache :: has('myKey');

有没有办法(使用基于文件的缓存驱动程序时)获取缓存中所有项目的列表?

例如,某些可能被命名为"Cache :: all()"的东西会返回:

[
    'itemKey' => [
        'myData1',
        'myData2'
   ],
   'myKey' => 'foo'
]
Run Code Online (Sandbox Code Playgroud)

我能想到的唯一方法是使用Cache :: has()方法遍历所有可能的键名.即aaa,aab,aac,aad ......但当然,这不是解决方案.

我在文档或描述这样的函数的API中看不到任何内容,但我认为不相信一个必须存在是不合理的.

php caching key laravel laravel-5

12
推荐指数
5
解决办法
2万
查看次数

获得Eloquent Model Laravel 5.1的原始属性

我有Foo属性使用getFooAttribute方法在显示之前格式化它,但在某些地方,我需要原始属性..所以我该怎么做

php laravel laravel-5 laravel-5.1

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

Laravel Request :: input调用未定义的方法

我是Laravel框架的新手,现在在尝试更新记录的用户信息时遇到问题.

路线:

Route::post('/user/{id}', function (Request $request, $id) {
    return App\Http\Controllers\UsersController::update($request, $id);
});

public static function update($request, $id)
{
    $user = User::find($id);
    $user->name = $request->input('name');
    ...
    $user->save();
    ...
}
Run Code Online (Sandbox Code Playgroud)

错误:

UsersController.php第24行中的FatalErrorException:调用未定义的方法Illuminate\Support\Facades\Request :: input()

php laravel laravel-5

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

标签 统计

laravel ×10

laravel-5 ×10

php ×10

eloquent ×3

laravel-5.1 ×3

caching ×1

date-format ×1

key ×1

mysql ×1