我目前正在使用Laravel 5.1构建一个Web应用程序,并希望开始创建一个本机应用程序,以便我的用户可以使用他们的手机。我已经决定使用Ionic Framework可能是该应用程序的最佳方法,并且对于将两者结合在一起存在一些疑问。
我在Laravel中有如下示例所示的路线:
app.dev/geckos
-这是一个GET
要求。
它接受当前经过身份验证的用户,使用其ID并获取与其用户ID匹配的所有壁虎。但是,它确实返回了刀片视图。
我假设当使用Ionic之类的东西时,为了正确地循环通过,GET
请求将需要返回JSON
而不是返回?
有没有一种方法可以JSON
根据路由是否像这样来更改我的控制器以供使用:
app.dev/api/v1/geckos
两条路由都将使用该GeckoController@index
方法,理想情况下,我只是不想重复代码。
我是相当新的,以Laravel和非常新的离子。因此,如果我过于复杂化此理论,请告诉我。
任何信息,对此表示赞赏,
安迪
我使用的另一个解决方案是在Laravel中有一个应用程序,它是一个RESTful JSON API。然后,您将拥有2. Web应用程序(在AngularJS中)和3.移动应用程序在Ionic(基于AngularJS)中。
因此,您将创建两个独立的应用程序,即移动应用程序和Web应用程序,它们都使用相同的JSON API进行通信。网络将是一个单页面的AngularJS应用程序,因此您可以重用与API进行通信的所有Angular服务,甚至可以使用移动Ionic和Web应用程序之间的某些控制器。
为移动/ Web应用程序创建两个单独的响应时,您将节省一些时间,因为您将仅创建一个:JSON响应。AngularJS将在两个应用程序中进行渲染,因此您不必在Blade中为Web应用程序创建单独的模板,而是在两个应用程序中都使用Angular进行所有渲染。在Web和移动应用程序中渲染相同内容会有一些细微差别,但只需要为两个应用程序创建单独的js指令/ css样式/ html模板,使用Blade您将无法重用任何与视图相关的代码在应用程序之间。同样,您将能够对两个应用程序使用相同的身份验证方法。
综上所述,此解决方案应该比您的解决方案更干净,因为您将能够在应用程序之间完全重用后端,可以重用很多前端内容(例如输入验证代码,服务,过滤器等),可以重用身份验证并引入更宽松的内容。耦合,并且结构比控制器中的丑陋响应式开关清晰得多。
编辑:因此,这可以是此类项目的结构的粗略示例:
1. API - REST in Laravel, returning JSON
-Controllers
-Session // actions CREATE, DELETE
-User // actions CREATE, VIEW, UPDATE, DELETE..
-Gecko
2. JS application - Angular App, for both mobile and web app
-common //controllers, services, filters - most of the frontend logic which reusable between both applications
-controllers.js
-services.js
-filters.js
-mobile //this part can be hosted on some server or part of the mobile application
-app.js //separate configs for mobile app
-controllers.js //controllers only for mobile app
-directives.js
-web
-app.js //separate configs for web app (links to HTML template URLS,...)
-controllers.js //controllers only for web app
-directives.js
-services.js //or even services only for web app
3. WEB APP
-HTML Templates - bunch of static .HTML files
-Home
-Login
-Register
-Gecko
-Gecko Views...
-Some index file with layout template, which includes everything from js/common and js/web, entry point to your web application
4. MOBILE APP
-www
-index.html // must include everything from js/common and js/mobile
-templates
-Gecko
-Gecko Views...
但是结构可能会发生很大变化,具体取决于您希望在Web服务器上托管移动应用程序的哪一部分,哪些应该脱机使用,或者您希望如何托管它,以及结构的详细程度。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句