我正在使用 Laravel 5.4 创建一个 API,并且一切正常。我使用了以下中间件 => auth:api 这样
Route::group(['middleware' => 'auth:api'], function(){
Route::get('URIValue', ControllerName@action) //Example
});
Run Code Online (Sandbox Code Playgroud)
我已经用邮递员对其进行了测试,当请求标头包含以下键和值时,它运行良好:
当 api_token 无效时,将执行 Handler 类的未经身份验证的函数。laravel 返回的默认响应是
'error' => 'Unauthenticated' // in JSON format
Run Code Online (Sandbox Code Playgroud)
但是当没有设置 Accept 头时,laravel 默认返回一个视图。但是对于 API,视图是不可接受的。
如何强制 laravel 为路由组中的路由的每个单个请求检查 Accept 标头是否设置了正确的值(在这种情况下,该值必须是 => accept/json)?
就像是:
protected function mapApiRoutes()
{
Route::prefix('api')
->middleware('api')
->namespace($this->namespace)
->header('Accept' => 'application/json') //this
->group(base_path('routes/api.php'));
}
Run Code Online (Sandbox Code Playgroud)
或者
Route::group(['middleware' => 'auth:api',
'headers' => ['Accept' => 'application/json']
], function(){
Route::get('URIValue', ControllerName@action) //Example
});
Run Code Online (Sandbox Code Playgroud) 我目前面临带有和输入的mat-chip-list的奇怪问题。我有一个包含两个表单控件的表单组:联系人和姓名。
this.form = this.formBuilder.group({
name: ['', [Validators.required]],
contactIds: ['', [Validators.required]]
})
Run Code Online (Sandbox Code Playgroud)
该表单的视图如下所示:
<mat-form-field #contactsChipList>
<mat-chip-list>
<mat-chip *ngFor="let contact of contacts" [removable]="removable" (remove)="removeChipListItem(contact)">
{{ contact.name | titlecase }} {{ contact.surname | titlecase }}
<mat-icon matChipRemove *ngIf="removable"></mat-icon>
</mat-chip>
<input [matChipInputFor]="contactsChipList" placeholder="Contacts" formControlName="contactIds" />
<mat-error *ngIf="form.hasError('required', 'contactIds')">This field is required</mat-error>
</mat-chip-list>
</mat-form-field>
Run Code Online (Sandbox Code Playgroud)
问题:当我从输入字段中删除所有元素时,父表单(formGroup)被标记为无效,但是formGroup的error属性不包含任何值。因此错误永远不会显示。
其他尝试:但是,当我使用普通的具有matInput属性但没有mat-chip-list的输入元素时,删除输入字段的内容时会正确显示错误。
在这种情况下,标记如下所示:
<div class="form-group">
<mat-form-field>
<input matInput placeholder="Contacts" formControlName="contactIds" />
<mat-error *ngIf="form.hasError('required', 'contactIds')">This field is required</mat-error>
</mat-form-field>
</div>
Run Code Online (Sandbox Code Playgroud)
假设:我现在认为问题出在mat-chip-list元素上。我试图研究:
@Input()errorStateMatcher: ErrorStateMatcher
但是我不确定如何使用。Google对该搜索并不友好。
有没有人遇到过这个问题?如果您需要澄清,请告诉我。
我最近开始使用.NET CORE v2。我正在尝试通过在我的web-api模板中使用代码优先方法来设置我的数据库。
背景:我以前使用过 Laravel 框架,我想在迁移文件中复制 Laravel 的 timestamp() 函数,该函数基本上会在表中创建两列:UpdatedAt 和 CreatedAt。
当使用 INSERT 或 UPDATE 列的 ORM (Elqoquent) 函数时,这些列中的值会填充正确的值。它是无缝的,您无需担心。
在我的 c# 代码中,我有以下模型
public class A {
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
public string Name { get; set; }
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public DateTime Created_At { get; set; } = DateTime.UtcNow;
[DatabaseGenerated(DatabaseGeneratedOption.Computed)]
public DateTime Updated_At { get; set; }
// I've tried to add "= DateTime.UtcNow;" at the end of Updated_At as well
} …Run Code Online (Sandbox Code Playgroud) 我有一个具有以下设置的应用程序:
Laravel
主机:appname.local:8000
环境变量:
角
主机:appname.local:4200
目前有效的方法:
什么不起作用:
对受以下中间件保护的路由的后续请求:auth:sanctum都会导致未经身份验证的响应。HTTP 请求永远不会到达我的控制器。
但是我可以在开发人员的控制台中看到正在发送 cookie。所以我不明白为什么 Sanctum 不接受认证

我已经学习了几个教程,但我似乎无法理解为什么 Laravel 的 Authenticate 中间件无法看到我已经对我的用户进行了身份验证。
有谁知道我可能做错了什么?
我有一组png图像(16x16)存储在我的Web服务器上的文件夹中.路径:c:/ wamp/www/website/images/flags.这些图像代表了世界各国的不同旗帜.
当我通过PHP脚本输出国家/地区列表及其各自的标志时,我希望动态访问这些图像.
在我的数据库中,我创建了下表
CREATE TABLE country (
ID INT UNSIGNED NOT NULL AUTO_INCREMENT,
countryCode CHAR(2) NOT NULL,
countryName VARCHAR (50) NOT NULL,
phoneCode CHAR (3) NOT NULL,
imagePathName VARCHAR (254) NOT NULL,
PRIMARY KEY(ID)
) ENGINE = InnoDB;
Run Code Online (Sandbox Code Playgroud)
在这种情况下,图像引用如何工作?我是否像任何CSS或HTML一样存储路径?
我是否必须存储路径,我只需按以下格式添加它:
INSERT INTO country VALUES ('', 'CD',
'Democratic Republic of Congo, '243', 'c:/wamp/www/website/images/flags/cd.png')
Run Code Online (Sandbox Code Playgroud)
或者我必须有一个BLOB数据类型的列.应该是这样的情况INSERT语句将如何?