我的Laravel应用程序中有两个表。 1是集合,第二个是q_collections。集合表包含一些对象。 q_collections有多个到一个字段到集合,意味着q_collections表具有集合对象的id作为c_id.I想要从集合表中排除与q_collections相关的对象。字段sd_item_id
在两个表中都很常见。我想使用此sd_item_id
过滤表来获取唯一记录或q_collections中不可用的记录。
表格就像
//Collection
class CreateCollection extends Migration {
public function up()
{
Schema::create('collection', function (Blueprint $table) {
$table->increments('id')->unsigned();
$table->string('name');
$table->timestamps();
});
}
public function down()
{
Schema::drop('collection');
}
}
//q_collections
class CreateQCollections extends Migration {
public function up()
{
Schema::create('q_collections', function(Blueprint $table) {
$table->increments('id');
$table->integer('sd_item_id')->unsigned();
$table->integer('qc_id')->unsigned(); // question collection id
$table->timestamps();
$table->foreign('qc_id')->references('id')->on('collection');
});
}
public function down()
{
Schema::drop('q_collection');
}
}
答案 0 :(得分:2)
您可以使用Laravel Query构建器。
$collection_count=DB::table('q_collections')->where('sd_item_id','=',$item_id)->count();
if($collection_count){
$sc=DB::table('q_collections')->where('sd_item_id','=',$item_id)->lists('qc_id');
}
else{
$sc=array(0);
}
$collections=DB::table('collection')->whereNotIn('id',$sc)->get();
return Response::json($collections);
可能还有其他一些方法可以执行此任务。 我也是laravel的新手,所以我也说这段代码完美与否,但肯定会有用。