具有缓存的两级关系查询的laravel内存限制

时间:2017-02-23 10:44:17

标签: laravel laravel-5 relationship

希望有人可以提供一些建议。

我有这个问题:

$branches = Cache::remember('branches-reports', 1440, function() {
        return Branch::with('users.books')->orderBy('name','asc')->get();
});

但是当我试图缓存它时,我得到了:

  

内存不足(已分配961019904)(尝试分配441764623   字节)

所以它实际上并没有使用它所分配的所有内存 - 要简单地缓存它,我只是简单地说:

private void setupNavigationDrawer() {
        mDrawerToggle = new ActionBarDrawerToggle(
                this, mDrawer, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
        mDrawer.addDrawerListener(mDrawerToggle);
        navigationView.setNavigationItemSelectedListener(this);
        if (getSupportActionBar() != null) {
            getSupportActionBar().setDisplayHomeAsUpEnabled(true);
            getSupportActionBar().setHomeButtonEnabled(true);
        }
        setDrawerState(true);
    }

    public void setDrawerState(boolean isEnabled) {
        if (isEnabled) {
            mDrawer.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED, GravityCompat.START);
            mDrawerToggle.syncState();
        } else {
            mDrawer.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED, GravityCompat.START);
            //Drawable backButton = ContextCompat.getDrawable(this, R.mipmap.ic_back_button);
            getSupportActionBar().setHomeAsUpIndicator(null);
        }
    }

@Override
    public boolean onOptionsItemSelected(MenuItem item) {
        int id = item.getItemId();
        if (id == android.R.id.home) {
            if (mDrawer.getDrawerLockMode(GravityCompat.START) == DrawerLayout.LOCK_MODE_LOCKED_CLOSED) {
                onBackPressed();
            } else {
                drawerToggle();
            }
            return true;
        } else if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }

    private void drawerToggle() {
        if (mDrawer.isDrawerVisible(GravityCompat.START)) {
            mDrawer.closeDrawer(GravityCompat.START);
        } else {
            mDrawer.openDrawer(GravityCompat.START);
        }
    }

我不确定如何解决这个问题。

关系明智的是,用户可以拥有一个分支,而分支可以拥有多个用户。然后,使用数据透视表,书籍和用户之间的关系是多对多的。

任何想法?

感谢。

0 个答案:

没有答案