大家好,我正在开发一个 Laravel 项目,用于制作 api 以 json 格式传递数据库值,但问题是我在这个表中有一个用户表 2 ids 1 是主键,第二个是我想要获取的业务 _id根据business_id获取数据,但它是通过id获取数据,请帮我解决这个问题。
这是我的模型代码
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class user extends Model
{
protected $table = 'business';
}
这是我的 Controller 代码
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\user;
class GetController extends Controller
{
public function databybusinessid($business _id){
$users = new user();
$users = user::find($business _id);
return response()->json($users);
}
}
非常感谢
最佳答案
您正在使用user::find($business _id)
find() 方法将自动按主键搜索,但您的模型中没有定义主键,并且 Eloquent 无法决定从表中选择哪一个。因此,您应该通过添加以下行在模型中显式设置主键。
class user extends Model
{
protected $table = 'business';
protected $primaryKey = 'business_id';
}
如果有疑问,您还可以使用 where 按特定列获取数据库记录
$users = user::where('business_id', '=', $business _id)->get()
关于 Eloquent ORM 的 Laravel 文档 https://laravel.com/docs/5.8/eloquent
关于php - 即使我在 laravel api 中获取不同的内容,也会从数据库中获取错误的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60276310/