我在这里看这个教程: http://laravel.com/docs/master/quickstart-intermediate#creating-the-task
但我不是盲目地追随它,而是试图让它与我的需求相关。我遇到了一个问题。我正在看这段代码:
/**
* Create a new task.
*
* @param Request $request
* @return Response
*/
public function store(Request $request)
{
$this->validate($request, [
'name' => 'required|max:255',
]);
$request->user()->tasks()->create([
'name' => $request->name,
]);
return redirect('/tasks');
}
确定。所以在我的应用程序中我想创建一个国家。没有与之关联的用户,它只是将国家/地区名称发布到此路线的表单。我的表单通过验证,如果我使用以下代码,我可以将新的国家/地区记录保存到我的数据库中:
如果我替换
$request->user()->tasks()->create([
'name' => $request->name,
]);
与......
$country = new Country;
$country ->name = $request->name;
$country ->save();
...然后这样就可以了。我不是真的想要这个。
我想要做的是使用与教程中的代码类似的东西。 谁能告诉我应该做些什么呢?
我尝试了一些不同的猜测,但没有运气。他们就是那个。猜测...
感谢。
DS
答案 0 :(得分:1)
您在教程中看到的代码可以概括为"为给定用户创建任务"。可以按照教程中的方式创建任务对象,因为用户和任务模型之间存在关联 - 请参阅 用户类中的tasks()方法。这就是为什么你可以,如果 $ user 存储一个类用户的对象,请调用 $ user-> tasks() - > create( ) - 因此,将创建类任务的对象并自动链接到该用户。
如果您想以相同的方式创建类国家/地区的对象,则需要在国家/地区和用户之间定义关系 - 但是在任务情况下它是有意义的(用户有自己的任务) ),它在你的应用程序中听起来不像你想要的东西(用户拥有自己的国家?)。