Laravel 删除没有“id”的行

ltv*_*ltv 6 php mysql laravel eloquent

我正在使用 laravel 创建一个小应用程序。此应用程序使用远程数据库。这个数据库没有 AI id。因此,当我尝试从数据库中删除一行(我使用“where::”函数选择)时,我收到以下错误:

Column not found: 1054 Unknown column 'id' in 'where clause' (SQL: delete from `mailbox` where `id` is null)
Run Code Online (Sandbox Code Playgroud)

是否有可能使用主 ID 以外的其他键删除一行?

Fel*_*rte 6

如果您有主键,请将其设置在您的模型中

protected $primaryKey = 'my_PK';
Run Code Online (Sandbox Code Playgroud)

如果您没有任何 PK,请使用自定义查询:

$q = 'DELETE FROM my_table where my_field = ?'
\DB::delete($q, [$my_data]);
Run Code Online (Sandbox Code Playgroud)


Nir*_*hah 5

如果你的表有一个模型,你可以使用类似的东西:

Model::where('column', $value)->delete();
Run Code Online (Sandbox Code Playgroud)

Model您的模型的名称在哪里等。您不需要自己编写整个查询。您可以 Eloquent 使删除查询根据需要变得复杂(即多个where查询)。