我有以下雄辩的实体:
表结构:
Schema::create('movies', function (Blueprint $table) {
$table->increments('id');
});
Schema::create('movie_theaters', function (Blueprint $table) {
$table->increments('id');
$table->string('name')->index();
$table->string('slug')->index()->unique();
$table->string('description')->index()->nullable();
$table->longText('content')->nullable();
$table->unsignedInteger('picture_id')->nullable();
$table->foreign('picture_id')
->references('id')
->on('media');
$table->boolean('activated')->default(true);
$table->timestamps();
});
Schema::create('movie_theater_rooms', function (Blueprint $table) {
$table->increments('id');
$table->string('name')->index();
$table->string('description')->index()->nullable();
$table->longText('content')->nullable();
$table->boolean('activated')->default(true);
$table->unsignedInteger('movie_theater_id');
$table->foreign('movie_theater_id')
->references('id')
->on('movie_theaters')
->onDelete('cascade');
$table->unsignedInteger('picture_id')->nullable();
$table->foreign('picture_id')
->references('id')
->on('media');
$table->timestamps();
});
Schema::create('movie_sessions', function (Blueprint $table) {
$table->increments('id');
$table->dateTime('starts_in');
$table->dateTime('ends_in');
$table->unsignedInteger('movie_theater_room_id');
$table->foreign('movie_theater_room_id')
->references('id')
->on('movie_theater_rooms')
->onDelete('cascade');
$table->unsignedInteger('movie_id');
$table->foreign('movie_id')
->references('id')
->on('movies')
->onDelete('cascade');
$table->boolean('activated')->default(true);
$table->timestamps();
});
如果一部电影有多部电影,那么每部电影都有多部电影,而每部电影都属于一部电影。
我试图通过movieTheaterId获取当前在movieTheaterId上播放的所有电影,但由于这是一个长期关系,我无法检索此类收藏。
这就是我尝试过的:
public function scopeGetMoviesShowingTodayOnMovieTheater($movieTheaterId)
{
return Movie::whereHas('sessions', function ($query) use ($movieTheaterId) {
// $query->whereDate('starts_in', Carbon::today());
$query->whereHas('movieTheaterRoom', function ($query) use ($movieTheaterId) {
$query->where('movie_theater_id', $movieTheaterId);
});
});
}
调用App\Models\Movie::getMoviesShowingTodayOnMovieTheater(1)时-
PHP可恢复致命错误:第338行的…/vendor/illumb/support/Str.PHP中的类illumb/Database/elount/Builder的对象无法转换为字符串
我也尝试过使用这个软件包
staudenmir/elokent有很多深层次的
,比如:
class MovieTheater extends Model {
use HasRelationships;
public function movies()
{
return $this->hasManyDeep(Movie::class, [MovieSession::class, MovieTheaterRoom::class]);
}
}
当调用
App\Models\MoviTheater::find(1)-
这是输出:
=Illumb/Database/QueryException,消息为“SQLSTATE[42S22]:未找到列:1054未知列“字段列表”中的“movie_sessions.movie_theater_id”(SQL:从
*,movies
moviesmovie\u sessions
中选择movie\u sessions
,电影院sessions
上的movie\u sessions
=movies
movie\u sessions\u id
内部连接电影院sessions
d电影院房间
电影院会话id
其中电影院会话
电影院会话id
=1)
我错在哪里?
如果你想使用staudenmeir/eloquent-has-many-深层
,你应该这样做
class MovieTheater extends Model {
use HasRelationships;
public function movies()
{
return $this->hasManyDeep(Movie::class, [MovieTheaterRoom::class, MovieSession::class]);
}
}
例外
类的对象照明/数据库/雄辩/生成器无法转换为字符串.../供应商/照明/支持/Str.php行338
由于未在范围定义中提供$query参数而引发。代码将尝试将电影院id转换为生成器实例,但失败。
尝试将代码重构为:
/**
* Scope a query to only select movies that are showing in a certain theater.
*
* @param \Illuminate\Database\Eloquent\Builder $query
* @param int $movieTheaterId
* @return \Illuminate\Database\Eloquent\Builder
*/
public function scopeGetMoviesShowingTodayOnMovieTheater($query, $movieTheaterId)
{
return $query
->whereHas('sessions.movieTheaterRoom', function ($query) use
($movieTheaterId) {
$query->whereMovieTheaterId($movieTheaterId);
});
}
我还添加了点表示法在where
语句中查询嵌套关系。
我想在正在播放时加载视频。
我正在尝试我的第一个MediaPlayer javafx应用程序。我遵循了很多操作方法,但我仍然无法在新应用程序上运行视频。 这有什么不好: 应用程序构建正确,没有触发“文件未找到异常”,但播放器卡在未知状态,凸起的窗口具有白色固定背景。既没有提供任何类型的音频。有什么建议吗?
我想使用eclipse在javafx中创建一个电影播放器。我的代码编译成功,但出现运行时错误。我也尝试使用不同的文件路径。但它并没有解决这个错误。我的代码是 错误是
我正在尝试使用JME3X-JFX播放flv文件,我使用demo类,可以通过http url方法播放他们的文件。我还可以下载他们的flv并使用flv方法播放。但是我似乎不能播放我自己的flv文件(在使用一个网站如keepvid(尝试了几个)从youtube视频url(开放许可证)转换后下载)。 这听起来有点像这个问题,只有黑屏显示,但对我来说,视频声音播放。我尝试使用RichFLV编辑元数据,以类似
活动中有和按钮和。 在WebView上加载“http://youtube.com”。 你可以看到youtube页面,然后点击电影。 电影将在HTML中播放。 单击按钮进行屏幕捕捉。 将捕获的图像设置为ImageView。 如何在WebView上捕获电影? 请帮帮我.
我需要从远程位置读取所有文件并将它们发送到另一个服务,如果成功发送,则删除所有文件。我的代码对于单个文件工作正常,但如果我想在循环中读取所有文件,那么代码不会被执行。 请按以下方式查找代码。在RemoteFileReadImpl类中,我试图读取循环中不起作用的文件。在WebClientUtil类中,我将文件发送到另一个服务。返回成功响应后,我想重命名已读取的文件。