用户
 找回密码
 入住 CI 中国社区
搜索
查看: 1598|回复: 6
收起左侧

[讨论/交流] 越来越感觉这MVC不好用

[复制链接]
发表于 2016-8-29 23:57:55 | 显示全部楼层 |阅读模式
越来越感觉这MVC不好用呀。
比如说,我写一个注册,刚开始我要写一个controller的A函数,用来加载注册的view,然后又得写个B函数,去处理注册的后台处理。最后,注册完我还得返回到登录页面,这时候我不能直接在B函数中load登录的view,因为url地址栏地址不对。我暂时只能想到,通过写一个注册跳登录的view,在view中location到登录的controller中。

不知道是不是我没有从旧有的前台跳后台,后台跳前台的那种模式转换过来,现在用的好别扭。求大神指点

发表于 2016-8-30 10:00:36 | 显示全部楼层
登陆成功后要跳转到登陆页面,你就直接跳转到登陆界面的地址就好了,没必要在登陆逻辑里面再写一个登陆view
 楼主| 发表于 2016-8-30 10:20:14 | 显示全部楼层
Michael锐生 发表于 2016-8-30 10:00
登陆成功后要跳转到登陆页面,你就直接跳转到登陆界面的地址就好了,没必要在登陆逻辑里面再写一个登陆view ...

没怎么看懂,我在注册的controller的php中怎么跳到登录界面的地址?
发表于 2016-8-30 10:38:50 | 显示全部楼层
cinewerheih 发表于 2016-8-30 10:20
没怎么看懂,我在注册的controller的php中怎么跳到登录界面的地址?

其實他的意思差不多,就是:
登入前(GET) => 登入中(POST) => 登入後(GET)

你所想的是:
註冊前(GET) => 註冊中(POST) => 登入前(GET)

而你原本是想要這樣子是嗎?
註冊前(GET) => 註冊中(POST) + 登入前畫面

MVC不是不好用,是你還不太會用
它可以幫助你更理解流程和減少重工

也許你可以看看 CI 手冊 - URL輔助函數
 

 楼主| 发表于 2016-8-30 11:36:45 | 显示全部楼层
Closer 发表于 2016-8-30 10:38
其實他的意思差不多,就是:
登入前(GET) => 登入中(POST) => 登入後(GET)

恩。是不怎么会用。我是这么理解你说的:
注册前(通过C加载V) => 注册中 (只调用C,在C中调用重定向方法,跳到登录的C) =>登录前(通过登录的C加载V)

是这样的吗??
发表于 2016-8-30 11:41:55 | 显示全部楼层
本帖最后由 Closer 于 2016-8-30 11:44 编辑
cinewerheih 发表于 2016-8-30 11:36
恩。是不怎么会用。我是这么理解你说的:
注册前(通过C加载V) => 注册中 (只调用C,在C中调用重定向方法 ...

沒錯

因為切分出來了
你可以有多個註冊畫面
都送往註冊中這個方法去處理
只要適當的邏輯判斷與使用 isset()

甚至你可以決定註冊後要導向的頁面
只要在註冊前傳遞一個 GET 給註冊中就行了 (或session或cookie)
再判斷要前往到 "登陸前" 或 "首頁" (根據身分或場景不同)

這就是 Controller 的核心用途

 
发表于 2016-8-31 10:35:32 | 显示全部楼层
MVC 是把你以前写在一起的代码,拆分开,这样你不觉得更清晰更优雅么?
把各种东西混到一起,不觉得很乱很不好维护么?

可能你这几十行代码放一起觉得没什么,如果是几万行代码都混在一起呢?几十万行呢?你是不是觉得确实有必要拆开呢?

本版积分规则