acacha/tasks

Laravel 框架。

维护者

详细信息

github.com/acacha/Tasks

源代码

问题

安装: 0

依赖项: 0

建议者: 0

安全性: 0

星级: 0

关注者: 5

分支: 0

类型:项目

dev-master 2019-04-01 12:02 UTC

This package is auto-updated.

Last update: 2024-09-13 03:49:14 UTC


README

localhost/:1 加载失败 http://127.0.0.1:8050/api/v1/tasks:请求的资源中没有 'Access-Control-Allow-Origin' 标头。因此不允许源 'https://:8080' 访问。

资源

Laravel

测试

HTTP

关系

学习函数的一个好方法是TDD和Wishful programming。

资源

Eloquent

CRUD (CREATE RETRIVE UPDATE DELETE)

'''资源'''

列表

方法

  • Task::all() -> 结果为集合
  • Task::where('completed', true)->orderBy('name', 'desc')->take(10)->get();
  • Fresh: $freshFlight = $flight->fresh();

资源

集合

Laravel 集合: https://laravel.net.cn/docs/5.7/collections

显示

$flight = App\Flight::find(1);
$flights = App\Flight::find([1, 2, 3]);
$flight = App\Flight::where('active', 1)->first();
$model = App\Flight::findOrFail(1);

创建

INSERTS: https://laravel.net.cn/docs/5.7/eloquent#inserting-and-updating-models

$flight = new Flight;

        $flight->name = $request->name;

        $flight->save();

批量赋值

OCO: fillable 字段

protected $fillable = ['name'];
$flight = App\Flight::create(['name' => 'Flight 10']);

更新

$flight = App\Flight::find(1);

$flight->name = 'New Flight Name';

$flight->save();

删除

$flight = App\Flight::find(1);

$flight->delete();

API CRUD (JSON) 与 HTML CRUD

CRITERI: 尝试不要与已存在的控制器冲突 -> API 命名空间 (文件夹)

app/Http/Controlloers/Api

ApiResources 控制器

 Route::apiResource('photos', 'API\PhotoController');
php artisan make:controller API/PhotoController --api

不要冲突方法 create 和 edit (没有 PHP/HTML 表单)

CRUD 路由

  • CRUD (英文中的 Cru)
  • BREAD (英文中的 Pà)
  • BROWSE READ EDIT ADD DELETE

推荐视频: https://laracasts.com/series/laravel-from-scratch-2018/episodes/11

路由

  • GET /projects (index)
  • GET /projects/create (create) -> 创建表单
  • GET /projects/1 (show)
  • POST /projects (store)
  • GET /projects1/edit (edit)
  • PATCH /projects/1 (update)
  • DELETE /projects/1 (destroy)

Laravel 帮助 (https://laravel.net.cn/docs/5.7/controllers#resource-controllers)

 Route:resource('/projects') 

Route::resources([
    'photos' => 'PhotoController',
    'posts' => 'PostController'
]);

控制器

当事情更复杂/更真实时(我们不一定只做 CRUD),我们将遵循 Cruddy By Design 标准

  • 更复杂的例子:将任务的完成状态从完成改为未完成,反之亦然

技术

  • 为嵌套资源提供一个专用控制器
  • 将独立编辑的属性视为单独的资源
  • 将连接模型视为它们自己的资源
  • 将不同的状态视为不同的资源

资源

路由模型绑定

https://laravel.net.cn/docs/5.7/controllers#resource-controllers

动词 URI 动作 路由名称 GET /photos index photos.index GET /photos/create create photos.create POST /photos store photos.store GET /photos/{photo} show photos.show GET /photos/{photo}/edit edit photos.edit PUT/PATCH /photos/{photo} update photos.update DELETE /photos/{photo} destroy photos.destroy

Vue

vue-tasks

工作指南

与以下相同

<input v-bind:value="searchText" v-on:input="searchText = $event.target.value"

Vue.component('base-checkbox', { model: { prop: 'checked', event: 'change' }, props: { checked: Boolean }, template: <input type="checkbox" v-bind:checked="checked" v-on:change="$emit('change', $event.target.checked)" > })

VUE 开发者工具

列表

V-IF 和 V-SHOW

显示已完成和未完成的任务

RANGES

{{ n }}

CRUD

编辑模式

Laracast 视频测试工具: https://laracasts.com/series/testing-vue/episodes/7

计算属性

  • 重要:始终是基于vue(数据)中的数据进行计算。不要在vue未监控的元素或常量上操作。
  • 有时可以使用方法来实现与计算属性相同的功能。
  • 示例:任务过滤器 -> 完成任务或未完成任务
  • https://vuejs.ac.cn/v2/guide/computed.html

组件属性

组件/API/合约之间的通信

父子组件之间的通信

VUE 事件

插槽

TODO

Axios

  • 与API通信
  • JavaScript Promise
  • 异步编程和JavaScript

-->

tasks_javascript

  • 文件夹:tasks:javascript
  • tailwind CSS

故障排除。问题解决

CORS。无法加载URL:请求的资源中没有'Access-Control-Allow-Origin'头。源...因此不允许访问。

重要:当客户端/前端和后端/服务器位于同一域名时,不需要CORS。

需要安装Laravel库

https://github.com/barryvdh/laravel-cors

$ composer require barryvdh/laravel-cors

添加中间件

protected $middleware = [
    // ...
    \Barryvdh\Cors\HandleCors::class,
];