希望有人可以提供一些建议。
我有这个问题:
$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);
}
}
我不确定如何解决这个问题。
关系明智的是,用户可以拥有一个分支,而分支可以拥有多个用户。然后,使用数据透视表,书籍和用户之间的关系是多对多的。
任何想法?
感谢。