Я очень новичок в laravel, но на самом деле я получаю неправильные результаты в таком базовом штате, что я очень смущен.Laravel: ошибочные результаты с моделью :: где
Ну у меня есть таблица:
Schema::create('matches', function(Blueprint $table)
{
$table->increments('id')->unsigned()->index();
$table->integer('season_id')->unsigned()->index();
$table->foreign('season_id')
->references('id')
->on('seasons')
->onUpdate('cascade')
->onDelete('cascade')
;
$table->integer('championship_id')->unsigned()->index();
$table->foreign('championship_id')
->references('id')
->on('championships')
->onUpdate('cascade')
->onDelete('cascade')
;
$table->integer('round')->unsigned()->index();
$table->integer('match')->unsigned()->index();
$table->integer('team1_id')->unsigned()->index();
$table->foreign('team1_id')
->references('id')
->on('teams')
->onUpdate('cascade')
->onDelete('cascade')
;
$table->integer('team2_id')->unsigned()->index();
$table->foreign('team2_id')
->references('id')
->on('teams')
->onUpdate('cascade')
->onDelete('cascade')
;
$table->integer('team1_goals')->unsigned()->nullable()->default(null);
$table->integer('team2_goals')->unsigned()->nullable()->default(null);
$table->integer('team1_misses')->unsigned()->nullable()->default(null);
$table->integer('team2_misses')->unsigned()->nullable()->default(null);
$table->timestamp('start_at');
$table->boolean('finished')->default(0);
$table->timestamps();
});
После некоторой математики его заполнен значениями команд IdS, целей, промахов и т.д. Хорошо, теперь я хочу, чтобы получить все баран, где побеждает team1 (team1_goals> team2_goals)
в ремесленника повозиться I Тип:
$matches = App\Match::where('team1_goals','>','team2_goals')->get()
и получить столь неожиданные результаты (последние 4):
<App\Match #00000000455ad9a2000000015b65c7f8> {
id: 237,
season_id: 1,
championship_id: 1,
round: 30,
match: 5,
team1_id: 7,
team2_id: 10,
team1_goals: 2,
team2_goals: 1,
team1_misses: 2,
team2_misses: 2,
start_at: "2015-06-21 14:38:22",
finished: 1,
created_at: "2015-06-21 13:53:52",
updated_at: "2015-06-21 13:57:00"
},
<App\Match #00000000455ad9dd000000015b65c7f8> {
id: 238,
season_id: 1,
championship_id: 1,
round: 30,
match: 6,
team1_id: 9,
team2_id: 12,
team1_goals: 2,
team2_goals: 2,
team1_misses: 1,
team2_misses: 1,
start_at: "2015-06-21 14:38:22",
finished: 1,
created_at: "2015-06-21 13:53:52",
updated_at: "2015-06-21 13:57:00"
},
<App\Match #00000000455ad9dc000000015b65c7f8> {
id: 239,
season_id: 1,
championship_id: 1,
round: 30,
match: 7,
team1_id: 5,
team2_id: 16,
team1_goals: 1,
team2_goals: 3,
team1_misses: 0,
team2_misses: 0,
start_at: "2015-06-21 14:38:22",
finished: 1,
created_at: "2015-06-21 13:53:52",
updated_at: "2015-06-21 13:57:00"
},
<App\Match #00000000455ad9df000000015b65c7f8> {
id: 240,
season_id: 1,
championship_id: 1,
round: 30,
match: 8,
team1_id: 8,
team2_id: 1,
team1_goals: 1,
team2_goals: 2,
team1_misses: 1,
team2_misses: 1,
start_at: "2015-06-21 14:38:22",
finished: 1,
created_at: "2015-06-21 13:53:52",
updated_at: "2015-06-21 13:57:00"
}
Как вы можете видеть матч:
- ID 237: team1_goals> team2_goals
- ID 238: team1_goals = team2_goals,
- ID 239: team1_goals < team2_goals,
ID 240 : team1_goals < team2_goals,
$ matches = App \ Match :: где ('team1_goals', '>', 'Team2_goals') -> счетчик()
дает результат 222 (240), так что его не все() или чего-л
Почему это происходит со мной?