课件laravel p2p实战0502项目day1-beta_第1页
课件laravel p2p实战0502项目day1-beta_第2页
课件laravel p2p实战0502项目day1-beta_第3页
课件laravel p2p实战0502项目day1-beta_第4页
课件laravel p2p实战0502项目day1-beta_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、laravel - 艺术1何安装1.1 arave 再牛,也是 结写的一堆代码arave 文件文件 说明他需要依赖很多1.2四种该如何安装,网上你大概能找到laravel - 艺术1何安装1.1 arave 再牛,也是 结写的一堆代码arave 文件文件 说明他需要依赖很多1.2四种该如何安装,网上你大概能找到4种方法,但你不要去死记从原理推出完整的laravel = laravel本er指定的依赖所以你至少可以有这4种办法用er create project命令自arave ,同时自动安装依赖别人帮我拼装好的laravel本身 er中指定的在这arave .com/down er安装依赖库(

2、何苦半自动本/arave/arave到下 执3. larvel安装器,可以帮你完成这两步()1.3 修改权在 nux下使arave ,1.4配置od o rwx /storage od o rwx /bootstrap/cache # 安装“laravel安装器”(不是er global require laravel/installer cd /rlc/nginx/htmer/vendor/bin/laravel new you er i staller create project er.jso/co /p pu .m/ve 在ng nx中,配置server段,指向. 要做的p2p金为例在

3、apache中aRoot Dwwwretpb在ng nx中,配置server段,指向. 要做的p2p金为例在apache中aRoot DwwwretpbV1.5 配置简洁对于apache,需要开启rwrt 写模块在 ttp.co f中,把下一行前去在/public创建s文件,内容如下Oton ooSLkserteEgin OnRreCon %REQUEST FLMRerteCo %REQUEST LEAMerteRl 如果仍不可以,找如下代码,把No e改为# owOvr co trols w at directives may be placed i . tac # It ca be All

4、, No e, or a y ob atio of t e keywords:s Alovrr ileI fo o fig Lmllowved No 对于ng nx,在虚拟主机配置段中加ngnx实例1.6 可能*1Whoops, ooks kesomethngwentarave的配置文件叫.env;cp .e le .e 2. No supported encrypter Ru tiExet i E cryptio Service pNo supported e crypter fou e cip er a d / or key le gt are i 原因: arave 需要定义一个key,

5、用于作密钥用,但没生成这个key.解决:p p artsia key:ge erate 生成keylocatio / lj ro try files $uri $uri/ /i dex.p p?$query stri g; i dex i dex.pex. tm i dex. tm;location / try files $uri $uri/ ?$query oao rrt ol modlsmo wreslocatio / l/ulci dex i ex. tm i dex. 2. 服务器 这种情况下,首先确然后问题应该出现环境是正确的,虚拟主2. 服务器 这种情况下,首先确然后问题应该出现

6、环境是正确的,虚拟主机配置也正常的权限上请按1.3章节继续操作2由2.1 路由arave 的路由器与控制器的关系,需要明确的在文件中明确定义p格式如下2.2 路由下例是/user/123这样的user后面的值将会捕捉到并自动传递给控制器的方法Route:get( user/id 函fu ($id) User 2.3传递Route:get( user/ am? , fu ctio ($ ame = ull) retur $ ae下例是/cat/cat/page/page这样的URL,cat后的参数和page后的参数捉到,并自动传递给控制器的方法函Route:get( cat/cat/page/p

7、age , fu ctio ($catid, $pageid) /下例指: 当用GET方/yy 这个地址时,用Xxoro中的reg()方法去响应/Route:get( /yy , xotrorr /当T方/zz 这个地址时,用Xxoro中的pay()方法去响应/t( /zz , ay/当/时,用第2个参数函数去响应/Route:get( / , function o /xmtot:mth( get ,t , /user , Xxotrrmt )/任何方/foo/bar,都用第2个参数中函数去响应/Route:any( /foo/bar , function o Wor 2.4参数限在TP中,自

8、动验证写在Mode 里,不够灵活. arave 把参数限制写在方法里Route:get( user/ am , fu ctio ($ am ) w ere( 2.4参数限在TP中,自动验证写在Mode 里,不够灵活. arave 把参数限制写在方法里Route:get( user/ am , fu ctio ($ am ) w ere( ame , A Za z Route:get( user/id , fu ctio ($id) ) w ere( id , 0 9 Route:get( user/id/ am , fu ctio ($id, $ am ) w ere( id = 0 9 am

9、e = a z 注意:路由参数不能包含中横线-想想变量名规范.3制3.1 控制器放在哪儿控制器放在 /app/Http/Co 下3.2 控制器文件叫什么3.3 控制器类叫什么?命名空间叫什么?继承自谁类叫XxCo 命名空间是 AppHttpCo 继承自AppHttpCo tllerC 4章 模板操4.1 模板放在哪儿模板放在vw下4.2叫什么xx.p p,或xx.blade.p 如果以.p p结尾,模板中直接语法即可,例rets id $table mpublic function m:rop goods 5.5 迁移https:/ arave .com/docs/5.1/mgrat 常见列类

10、型一览常d$table bg creme ts( id IncrementngID(prmarykey) usnga UNSIGNED EGERequva$table bg teger( votes equvaentforthe $table bi ary( data BLOBequva5.5 迁移https:/ arave .com/docs/5.1/mgrat 常见列类型一览常d$table bg creme ts( id IncrementngID(prmarykey) usnga UNSIGNED EGERequva$table bg teger( votes equvaentfort

11、he $table bi ary( data BLOBequvaentforthe$table boolea ( co re equvaent for the $table c ar( ame , CHARequvaent$table date( created at DATEequvaentforthe$table date m created at DATETIME equvaent for the $table ecal amou t , 5, DECIMALequvaentprecsonandsca$table double( lu , 15, DOUBLEequvaentwthpre

12、cson,15dgts ntota and8afterthedecma po$table e um c , foo , bar );ENUMequ vaent forthe $table float( amou t FLOATequvaentforthe$table i creme ts( id IncrementngID(prmarykey) usnga EGER equva$table i teger( votes EGERequ vaent for the $table jso ( optio s JSONequvaent for the $table jso b( optio s JS

13、ONBequ vaentforthe $table lo g ext( descriptio LONGTEXTequ vaent for the $table edu teger( uber equvaentforthe$table medu ext( descriptio MEDIUMTEXT equvaent forthe $table morp s( taggable EGERtaggable idandSTRINGtaggable $table ullable Sameas tmt s(),excepta ows$table remember oke Addsremember toke

14、 asVARCHAR(100)$table smll teger( votes equvaent forthe$table oDltsAddsdeleted at coumnforsoftde$table stri g( );VARCHAR equvaent co$table stri g( ame , VARCHAR equ vaent $table text( descriptio TEXTequvaentforthe$table te su rise TIMEequvaentforthe$table ti yI teger( umbers $table tm( added o $tabl

15、e tsAdds created at and updated at co$table uuid( id UUIDequvaentforthe 用列修改方法按MVC的架构,数据库的操作大部分应放在Mode 中但如果不用Mode 也可以用arave 的DB类操作数据库而且,如果某些极其复杂的sq ,用Mode 已经很难表达,要手写sq 也需要用DB类去执行原生sq DB类的基本用法: 按MVC的架构,数据库的操作大部分应放在Mode 中但如果不用Mode 也可以用arave 的DB类操作数据库而且,如果某些极其复杂的sq ,用Mode 已经很难表达,要手写sq 也需要用DB类去执行原生sq DB

16、类的基本用法: :ale users ) 获取操作users表的实例6.1单行 (注意看数组的键DB:table( users ) i i sert()方法返回值为true 多行 数组DB:table( users ) i = 后返回主键值 获取主键值,用i srGed()方DBtal users ) i G(6.2典型修改 Btal users ) w ere( id , 1) update( age = 19) 相当于;某字段增长或减少 DBtal users ) w ere( id ,1) i creme t( age ); DBtal users ) w ere( id ,2) i c

17、reme t( age , 3); DBtal users ) w ere( id ,3) decreme t( age ); DBtal users ) w ere( id ,4) decreme t( age , 3);6.36.4/ select * fo users; DB:table( users ) get();Bta users ) w ere( id , , 6 ) update users set age=19 w ere Pacethecoumnfrst nthetabeOnafter( lu PacethecoumnafteranothercoumnOnA owNULLv

18、auestobe nserted ntotheco SpecfyadefautvaueforthecoSeti tegercoumnsUGEu sig Sc ea:be users , fu ctio ($table) $table stri ) 注意:,.7章 完整的增删改7.1程序规GET /msg/ ndex 展示留言列GETmsg/add展示表T /msg/add注意:,.7章 完整的增删改7.1程序规GET /msg/ ndex 展示留言列GETmsg/add展示表T /msg/add 接T数据,并入GETmsg/ded删除留按规划写如下路由Route:get( g/ dex , M

19、sgCo rler dex ); Route:get( msg/add , MsgCo rollra );t( msg/add , MsgCo trllra ost Route:get( sg/e/i MsgCo trllr ou:ma ( get t , g/upd , MsgCo rollru 数据迁生成迁移文2. 编辑迁移文public function up() em:rt msgs , function $table rets id $table string( title $table string( content $table eger( pbt $table mpublic

20、function m:ropmsgs$table) 1. 执行迁移 p p artisa mg7.3发布留表单namespace pptptrruse ApptpCrlrsCnrlruse DB;class gControleextends Conrol public function add() ie msg.add p p mkmrtcreate msgs =/ select * fo user w ere id Bta users ) w ere( id , 6) / select fo users w ere id Bta users ) select( id ) w ere( id

21、, 6) / select * fo users w ere id=6 取出单行,返DBtal users ) w ere( id ,6) 发布页提交出错oke mat Exceptio i VeryCr oke .p发布页提交出错oke mat Exceptio i VeryCr oke .p 不要惊慌,这是因为arave 自带防站外提交(Csrf)的功能原理:加入某个特征串,T接收页面检测此特征串解决: 在表单中,加入这个特征串就行了i put type= idde ame toke value=?p p ec o csrf toke (); 列表页public fu ctio i dex

22、() $msgs = Btal msgs ) retur vw mg. dex , msgs =$ 所有留言/ 标题内容操作?p p foreac $sg as $ title;? co te 删除a =/sgu/修改?p p w ere( id ,$id) delete() retur redirect( sg/ dex else del error public fu t() $rs = D:tale msgs ) i sert( title =$ OS title , co te t =$ OS co te t );retur $rs ? OK : fail / mlt rerremmm

23、eta charset=utf laravel添加留言r action= dinput type=text m=textareattxtr 天气$data = title = 天气预报 , content今天天气真不错, score =mt rand(40,90),users= zhangsan ,lisi ,wangwureturn vw test ew xx , smat assig ( title = 今天天气不错 smat assig ( co te t = 温度零上13度 public function up($id) if( empty($T) ) $msg = DBtblmsgs

24、 ) where( id ,$id) return vwm., msg mg)else $rs B:abmsgs)where(id,$id)update( ti tle =$T title ,content T content return $rs ? OK : false meta charset=utf laravel修改留言r action= dinput type=text am=ite echo $msg echo $msg input type=hidden ae token echo csrf token(); = e du 8.5 for循for ($i=0; $i= e du

25、 8.5 for循for ($i=0; $i10; $i $i e dfor8.6 foreach循foreac ($users as $u e dforeac8.7 forelse 循环是否为空8.8模板包 clude( sub ) 包含vs下的sub.blade.p 8.9模板继头部和尾部都一样,就中间的左右内容不一样用i clude模板来做,是把头尾拿出来 eader,footer拿出来然后 clude( eader ), clude( footer )需要 clude两次,而继承则是把 eader/footer 公共框架写在父模板中,继承一次父模板模板继承的概念和象的继承非常相似,看下

26、例os ( as e ($score = ls ($score = le ( express) # 注意express两边加ele (express) # 表达示le 父模板中有2个eftside,rig 子模板继承父模板,并写leftside,rig tside方法,则获父模板中有2个eftside,rig 子模板继承父模板,并写leftside,rig tside方法,则获得子类的特定输出根据象的知识,子模板的同名方法覆盖父类方法同时,子类rig tside方法因此,显示结果为的父类方法8.10 为防止blade模板去,前面加符号边界.例8.11 模板输出已自动防 code = alert

27、(1) 输出到v ew;/s如果确实不需要实体转义,可以加.(个大括号,不是两个例:!$oder父模板 pare t.blase.p meta c arset=utf so left so rig tpare t rig exte ds( pare t )sec( leftside ) so lefte sec( rig tside ) so rig tpare t e 父模板 pare t.blase.p meta c arset=utf sct ( leftside )t is is pare t left s ow sct ( rig tside )t is is pare t rig

28、t s ow ,3) public function add() $msg = new $msg title = T title $msg content= $T title ; return $msg save() ? OK : fail ;:find($id); / 得到Xx表的,且与$id行数据对应namespace use ttclass Msg extends lu ateDatabaseEloque 9.7public function up($id) if( T) ) $msg = f$return viw sg9.7public function up($id) if( T)

29、) $msg = f$return viw sg , msg else $msg = f$msg title = T title $msg content= T content return $msg save()? OK : fail 9.8public function del($id) $msg = sgfi$;return $msg delete() ?:fail 9.9复杂查排序* 限制条目统分组(错分组(对/ 用DB:raw()方法,raw是,不修饰的意Goods:groupBy( cat id ) get( cat id ,DB:raw( avg(price) ) 更复杂的查询表

30、达式https:/ arave .com/docs/5.1/quer 9.10 的约名+s,可能通过的mode类的table属性来指定表名. 列表名的约定 默认表名为class extends Goods:groupBy( cat id ) get( cat id , avg(price) ) /想要效果: select cat id,avg(price) ro goods group by cat /实际效果: select cat id,avg(price) ro goods group by cat /原因: laravel在字段名两边用反引号包住了Msg:avg( id Mgmn id

31、 g:max id M:um id / select . where id2 order by id desc lim Msg:where( id , ,2) orderBy( id , desc ) skip(2) take(1) / select . where id 2 order by id desc; Msg:where( id , ,2) orderBy( id , desc ) get()/ 按条件查多Msg:w ere( id , 2) get( 列1 , 列2d的约定 Mode 默认认为,每张表都有一个叫做id的主键,你可以通过rrKey属性来指定主键列名at字段 Mode

32、默认有这2个字段,且在更新行时,会自动帮你更新这两个字段如果不想这样,d的约定 Mode 默认认为,每张表都有一个叫做id的主键,你可以通过rrKey属性来指定主键列名at字段 Mode 默认有这2个字段,且在更新行时,会自动帮你更新这两个字段如果不想这样,甚至不想要这2个字段,tmode的属性设为10章 Request对对上放置着此次请求的全部信息.如请求方式请求路径 (请求cook 后的部分等诸多信息,都存到的Request对象在方法中Request对第1个参数为参数,即可自动接收Request作为方法的第1个参数出现另:如果方法中有路由器绑定的参数,不受影响:Route:get( /de

33、l/$id public function del(Request $request , $id) / $id参数虽然到第2个参数去了,但不会受影响10.2 利用Request对象修改留言例,对象改进留言修改功能use tRqupublic function up(Request $request , if( p(T)$msg = f$return viw sg , msg else r( $request all() $msg = f$msg title = $request input( title ); / T参数 = ; 属$msg uti = $request input( uti

34、,im(); 给个默return $msg save() ? OK : fail 10.3 利用Request对象上/ mlt rerremmmeta charset=utf laravel添加留言equestclass exte ds public $tms = class extends protected priryKe = Xx id protected$table= rbeN发布页10.4 laravel与TP对路由器的区arave 的路由简单,灵活,指向控制器的方法. 而TP的路由是这种规律生成准确的说,TP不能叫路由,是而TP的规则路由发布页10.4 laravel与TP对路由器

35、的区arave 的路由简单,灵活,指向控制器的方法. 而TP的路由是这种规律生成准确的说,TP不能叫路由,是而TP的规则路由,正则路由,只是URL的一个别名甚至是跳转,不是真正的路由假如上例写在Home模块下,是指-整体设计的区别 arave 接管的全过程,数据库+MVC+错误处理 DB MVC error而tp,不包含数据库Balcol s不在tp管理范围 t i kp pMVC arave更像一个全自动车床,输入原料,得到成品. 设的区别 arave大处省流程,tp小处省字母例:而tp则$ GE ,$ 有本质变化,仍是$ 仍需要手动接收,I( get.id相比$ GE 下,和纯手写博客时的

36、思路,没有根本变化,.而arave ,则是接收参数的方式都已经截然不同 XxCo troller met ,$ TP提供的D(),M() I(),等有改变你的工作方式,只是让略省几个字母. arave则从流程和方式上,改变和简化工作.象的区别 通过文件上传体现的比较明显, arave 是把WEB功能封装在对象里, TP则是封装对象帮你做web功能面$ ,$ ,$ oe/ dex/goods/goods URL ROUTER ON= true, URL ROUTE RULES =array(goods/:goodsid = Index/goods)URL与控制器的模块/控制器/方public f

37、u t(Request $request) $request file( pic ) move( /pat /o/gexxj frm echo url( msg/add );? dinput type=text m=textareattxtrinput type=file aepinput p=sbit value=提交r/t模板的区别 arave 的模板语法比TP语法简arave提供了系列好用的函数,大致分为以下几类. https:/ arave .com/docs/5.1/he pers数组函 各举几例array collapse() 数组拆散组成一维数组str l模板的区别 arave

38、的模板语法比TP语法简arave提供了系列好用的函数,大致分为以下几类. https:/ arave .com/docs/5.1/he pers数组函 各举几例array collapse() 数组拆散组成一维数组str lt取字符前几位,并添加省略str_random() e() app pat () 返回当前项目的的绝对$pat = app pat 也可以用于获取下的其他文件的路径$pat = app pat ( Http/Co rlls/C p base pat 返回项目的绝$pat = base pat 也可以返回项下某文件的绝对路径,$pat = base pat ( ve dor/

39、bi co fig pat () 返回项目的配置文件所$pat = co fig pat public pat () 返回项目的公共文件所(js,css等一般放这儿$pat = public pat url() 生成规范actio () 配合路由器,生成规范url( foo/bar ); url( / ,cat,3, page ,4); ec o e( oo tl / lt tlt;oo; l$stri g = str ra om( / 8位随机字符$value = str te H framework for web artisa s. , e H $array = array collap

40、se(1, 2, 3, 4, 5, 6, 7, 8, / 1, 2, 3, 4, 5, 6, 7, 8, back() 退回上一retur bcrypt() 加$password = bcrypt( my secret password 配置生成防跨域提交的随机串csrf field() 生成防跨域提交的隐藏字段! csrf field() dd() 打印变量并终止执行,一般调试时定得到当前的back() 退回上一retur bcrypt() 加$password = bcrypt( my secret password 配置生成防跨域提交的随机串csrf field() 生成防跨域提交的隐藏

41、字段! csrf field() dd() 打印变量并终止执行,一般调试时定得到当前的request对$request = $value = request( key , $default = 12章 项目开12.1 功能分p2pe租宝, 人人贷商业模式在豪华地段,租最豪,招模特做前台,一水的170,大长腿资本,怎么着也得一个亿吧,反正不用真实出资(关键再到敬老院雇一 病老头市场诺高额回报,利率15%起,我说的是月利息没客户怎么办? 在央视黄金时线下销售销售,狂.付不出利息怎么办? 没事,用下一个客户的本钱付上个客户的利息当客户本金积累到10亿时及时的死掉的钱哪去了? 鬼知道基本功能retur

42、 redirect( / ome $toke = csrf toke csrf toke $value = co fig( ap.tz e $value = co fig( ap.tz e , $default)没读到配置,则返回co /如果路由器没定义到XxCo llerme od的路径,则会报错 actio ( XxCo tlrm od );ec o actio ( MsgCo rllre ,3, page 12.2 准备模把点点贷模板解压放在vw下把解压出的ge,移动到下写一个简单路由12.2 准备模把点点贷模板解压放在vw下把解压出的ge,移动到下写一个简单路由器测试Route:get

43、( test/i dex , fu ctio ()retur ew /i dex 并把i dex. 命名为 i dex.blade.p ,s浏览器f2打开控制台,以omo .s为例:/test/i dex, 而源码中 /css/, ge/-ig再次刷新, 页面已正常显示12.3 表分用户表: 字类说uprmary主str用户str电子邮mo .css 借款表:projects 用到时再分析借款附属表:atts投资表:i收益表还款表:s 流水表:l12.3 迁移文13认证13.1 准备工自带了用户认证类,可以借款表:projects 用到时再分析借款附属表:atts投资表:i收益表还款表:s 流

44、水表:l12.3 迁移文13认证13.1 准备工自带了用户认证类,可以方完成认证troller以及users主要用到 AppHttpCo trollersAut oarave 要求users表至少有如下字段 ema字password 60个长度 remember_token 100个长度由的uesrs表主键叫uid,且没有created at,update at字段因此,按Mode 的约定,做如下说明protected $rmarye = uid public $tes = 13.2 AuthController类的工作原/ userspublic function em:rt users ,

45、 function $table) $table rts uid $table string( name $table ) $table string( ol $table string( password , $table rebr$table eger( rgtim $table eger( lastlogin mobstr号strregt时astog上次登陆时用户cook o troller类有几个 要属性,意义如下(如果需要,你可以修改这o troller类有几个 要属性,意义如下(如果需要,你可以修改这几个属性值A13.3 准备路由与模板在vew下建立把register. l和log

46、i . l放入下并 命名为register.blade.p p和logi . blade.p 13.4 用frm tT action=url( auth/register csrf用户名:input type=text nmeae value= old( name/ Rgiro Route:get( auth/register , Au thotrrtte); Route: t( auth/register , Au tor tRgit );/ Athentitio Route:get( auth/login , Au thtrrgtg); Route: t( auth/login , Au

47、thotro ostLogin ); Route:get( auth/logout , Au tCorlrgLgo );/ / 依据版本5.1.33 class AuthController protected $username =; #与password字段配合登陆的字段,nmemi protected $redirectPath = /home ; # 登陆成功后的跳转方向protected rdretAtrogo = / ; # 默认退出后跳protected $loginPath = auth/login ; #默认登陆:input n value= ) :input type=te

48、xt o:input p=pa:input n value= ) :input type=text o:input p=pasrd =pr:input tp=pswr namepwr rn确注意,确必须叫password coimaon才能自动验 $data name = password =bcrypt($datapassword发现在创建用户时,没有传递ole字段:protected function create(array return name = $data name = mi = $data mi password =bcrypt($datapassword再次提交,仍然收不到o

49、le字段,再次查看Mode p的文件,有如下属性:protected $fillable = ame , password 这个属性代表,外界对User :批量赋值时接收的字段protected $fillable = ame , obl , password 再,此时数据库有ole数据了ol13.6 用户登frm tdT action=url( auth/login csrf用户名:input type=text nmeae value= old( name13.6 用户登frm tdT action=url( auth/login csrf用户名:input type=text nmeae

50、 value= old( name:input p=pasrd =prinput type=checkbox a=remr Array ( 0 efield is required. 这是因为: arave框架默认用+password字段来检测用户并登陆的属性如下即,指定arave 以用户名和来登陆,即可13.8 手动登如果有自己独特的独特登陆逻辑,可以手动登陆验tt= , password = rAh:tmt( name = $na password = $password, = 检测登陆状Aut :c 退Atlgot14章 借款功14.1 借款表及迁移文借款表字类说pprmary主u用户u

51、str用户金mobstrprotected $user ame ame Aut o 借款附属信息表/ projects表 迁移文public function em:rt projects , function $table) rteger(借款附属信息表/ projects表 迁移文public function em:rt projects , function $table) rteger( uid string( name eger( money string( oi string( title ( rate eger( hrange eger( us ); # 0审核中,1招标中,2

52、还款中,3结eger( recive eger( pbtm / atts表 迁移文public function em:rt atts , function $table rets aid $table eger( uid $table) $table $table string( rana $table eger( age $table enum( gender , 男 , 女 $table eger( salary $table string( jobcity $table string( udesc 字类说rmary主u用户up项目pttstr项目名reastr真tnyenum(男,女s

53、atny千jobcstr工作城str用户描ttstr项目名tny利率(百分比tny还款期限,s tny0审核中,1招标中,2还款中,3结rev已招标pubt 项14.2 准备路由器和Route:get( jie , rootrolrji t( jie14.2 准备路由器和Route:get( jie , rootrolrji t( jie , rorrt 14.3 生成申请牵涉到2张表, projects, 为期生成Mode 14.4 借款方public function ie(Rques $request) return vew yja);public function t(Request

54、$request) /$rs = Pro:create($request $pro = new$proage= $request $promoney=$requesto$pro mole $request $pro uti = ($rs = $pro / 开始写入atts附属表信$att =new $att uid = $user $att = $pro ;$att var r14.5 获取登陆用户信class Pro extends protected $table = projects ; protected primrye= ; public tim s = false;protecte

55、d $fillable = money , age , ml class Att extends protected prmryK= aid ; public tims = false;artisanartisanpublic function ie oyu public function return o DB 在上一节中,发布的 roject信息没有用户的uid, ame信息需要从登陆信息中拿在上一节中,发布的 roject信息没有用户的uid, ame信息需要从登陆信息中拿到这两条信息,并写中arave 中,获取当前登陆用户的对象,可以用如下方法通过uer实例,可以拿到当前登陆用户的信息

56、,项目审15.1 审核列表页路由器控制器v15.2 审核表frls ($pros as $p date( Y/m/d H: , $p $p ap$p o/$p mlttd if ($p us = 待审si ($p us = 招标si ($p us = 还款si ($p us = 已结en) 审核暂无d/ file appHtpCorsCekCrl public function prolist() $pros = Pro:orderBy(,desc)get(); return vwprolist , pros =$pros);Route:get( prolist , ekrrolist pub

57、lic function t(Request $request) /$user = $user = $request $pro uid = $user $proname=$user$user = $user = $request 路由器控制器15.3 审核过程路由器t( , Ckort 控制路由器控制器15.3 审核过程路由器t( , Ckort 控制/ 审核数据updatepublic fu ctio c eck ost(Request $req , $pro = ro:fi $att = t: , ) emt($o) retur redirect( /prolist $pro title

58、= $req $pro ra ge = $req ra $pro rate = $req rate; / 百分$pro us = $req $att real ame = $req real $att ge der = $req ge $att udesc = $req if( $pro save() & $att save() retur redirect( /prolist else error 16章 投资功16.1 投标表字类说bprmary主u用户up项目p/ 审核项目,主要是修改projects表和attspublic fu ctio c ) $pro = ro:fi $att =

59、 t: , ) emt($o) retur redirect( /prolist retur ew s e e , pro =$pro , att Route:get( , kotror 投public function t(Request $request , ) $pro = $bid =new$user = $bid uid = $user $bid = $pro ;投public function t(Request $request , ) $pro = $bid =new$user = $bid uid = $user $bid = $pro ;$bid title = $pro

60、$bidmoney=$requestinput(vamount$bid tim = ($bid save(); / 写入投资信/ 修改项目收到的金$pro nret recive , $bid o/ 如果投标已满,则改此项目的状态. if($pro money = $pro recive) /$pro us = /$pro $this tozion($r /交给专门的方法来处echo succ 15.2投标完成后, 借款人每月要还本+息,投资人每天要收利息因此再建2张表还款表字类说hprmary主u用户up项目pttstr项目名每月还款金账单s tny是否已/ bids表 迁移文public

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论