php - Laravel: 这个调研问卷的demo的控制器保存方法怎么写?
PHPz
PHPz 2017-04-10 17:45:10
0
2
302

用的laravel5.2框架,下面这个调研问卷的控制器怎么写?demo如下:

数据表有3张,1和2多对多关系:
1、respondents //受访者
2、sports //喜欢的运动
3、sport_respondent //关联表

respondents

id name email

sports

id sport_name 1 Basketball 2 Football 3 Table tennis 4 Badminton 5 Baseball 6 Swimming

sport_respondent

id respondent_id sport_id

视图:

        

问题:控制器怎么写?

public function store(Request $request) { $respondent= new Respondent; $respondent->name = $request->name; $respondent->email = $request->email; $respondent->save(); $sport = new Sport; //接下来怎么写? return redirect()->action('RespondentController@index'); }
PHPz
PHPz

学习是最好的投资!

모든 응답 (2)
黄舟

使用laravel的多对多关联模型插入方法。
获取受访者(respondents)的id:1)如果有登录,应该从session中获得;2)如果是即时创建的话,那创建就行了。说一下第二种方法
respondents与sports要建立多对多的关联关系。

public function store(Request $request) { $params = $request->all(); $respondent= new Respondent; $respondent->name = $params['name']; $respondent->email = $params['email']; $respondent->save(); $respondent->sports()->attach($params['sportd_ids']); }
    Peter_Zhu

    没用过Laravel,不过像这种关系的保存数据,逻辑通的话还是很好写的;

    1. 先插入这张respondents用户表,获取到插入的id并保存;

    2. 然后后台接收到sports的值是一个数组,然后以sports数组foreach,用刚才插入的用户id喜欢的运动value值组合成sql语句循环插入到sport_respondent

    以上。

      최신 다운로드
      더>
      웹 효과
      웹사이트 소스 코드
      웹사이트 자료
      프론트엔드 템플릿
      회사 소개 부인 성명 Sitemap
      PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!