我正在跟随simple ToDo list example学习Laravel 5。 我完全按照给定的方式设置代码,对于小型数据库,APP运行良好。
当我设置我的自定义种子(大型数据库)(下面附带的文件)时出现了问题。
当我将项目计数设置为 ~10-50时,APP完美地运行。
在 ~1000 +范围(1k项目,100k任务)中设置它,我必须多次单击(APP查询URL)才能使删除任务正常工作。标准方法delete
,update
失败,只有store
有效。知道为什么吗?
我已经使用phpMyAdmin验证了数据库设置正确。我在删除时也设置了Exception
检查。
编辑:我发现store
操作即使在100k数据库上也能正常运行。如果我删除了一些我只是store
d(使用PHP应用程序),它就可以了。但是,对于种子条目,delete
失败(至少5次尝试)。
ProjectsTableSeeder.php
TasksTableSeeder.php
TasksController.php
原始文件(来自教程)是here。
答案 0 :(得分:0)
我相信你试图一次显示太多记录。
尝试将此添加到索引方法中。
public function index(Project $project) {
return view('tasks.index', compact('project'))->paginate(20);;
}
您可以使用。
在视图中显示它{!! $project->appends(Request::except('page'))->render() !!}
我不相信还有更多的设置。
pagination上的文档非常好。
如果你还没有签出Laracasts那就值得每一分钱。
查看Crazy Simple Pagination了解有关分页的更多信息。
答案 1 :(得分:0)
我明白了。事实证明我错误地依靠Faker
生成100k slugs,这就是问题所在。删除的多次点击实际上是不同的条目被删除(:P)。
我从:
更改了slug生成函数 'slug' => $faker->firstName
为:
'slug' => $faker->firstName.$faker->lastName.rand(0, $BATCH_SIZE)
现在它完美无缺!唷。
(我有1k
项目,1M
任务,几乎没有滞后!)