我试图在MySQL数据库中的phpMyAdmin中运行SQL查询,以获取在另一个表中没有相应记录的记录.
例如
**album**
id, name
**track**
id, album_id, name
Run Code Online (Sandbox Code Playgroud)
我需要所有没有相对曲目记录的专辑记录.
我试过了
SELECT album.id
from album
WHERE album.id NOT IN (
SELECT track.album_id
FROM track
WHERE 1
GROUP BY track.album_id
)
Run Code Online (Sandbox Code Playgroud)
但不幸的是,这会导致MySQL服务崩溃
我也试过了
SELECT a.id FROM album a
INNER JOIN track t
ON a.id = t.album_id
WHERE t.id IS NULL
Run Code Online (Sandbox Code Playgroud)
但这不能按预期工作(不返回结果)
我希望在我的大多数视图文件中都有一个变量$ user_profile,而不必在每个控制器文件中创建变量.目前我的工作正常,但我想知道是否有更好的解决方案
我有一些代码来填充变量
$user_profile = YumUser::model()->findByPk(Yii::app()->user->id)->profile;
Run Code Online (Sandbox Code Playgroud)
然后是父类
class Controller extends CController {
public function getUserProfile()
{
$user_profile = YumUser::model()->findByPk(Yii::app()->user->id)->profile;
}
}
Run Code Online (Sandbox Code Playgroud)
然后我让所有其他控制器继承Controller类,例如
class DashboardController extends Controller
{
public function actionIndex()
{
$user_profile = parent::getUserProfile();
$this->render('index', array('user_profile' => $user_profile));
}
}
Run Code Online (Sandbox Code Playgroud)
然后最后在视图文件中我可以简单地访问$ user_profile变量.
我在Symfony 4中使用Alice的数据夹具有问题.
当我运行bin/console doctrine:fixtures:load我被问到是否要清除db并最终命令终止而没有任何错误.
数据库被有效清除,但没有填充数据.
我正在使用Symfony 4.0.3,Doctrine Data Fixtures 1.3和Nelmio Alice 3.1.3.
SRC/DataFixtures/ORM/fixtures.yml
App\Entity\User:
user{1..10}:
email: '<email()>'
Run Code Online (Sandbox Code Playgroud)
SRC/DataFixtures/ORM/LoadFixtures.php
namespace App\DataFixtures\ORM;
use Doctrine\Bundle\FixturesBundle\Fixture;
use Doctrine\Common\Persistence\ObjectManager;
use Nelmio\Alice\Loader\NativeLoader;
class LoadFixtures extends Fixture
{
public function load(ObjectManager $manager)
{
$loader = new NativeLoader();
$objectSet = $loader->loadFile(__DIR__.'/fixtures.yml');
}
}
Run Code Online (Sandbox Code Playgroud)
SRC /实体/ user.php的
namespace App\Entity;
use Symfony\Component\Security\Core\User\UserInterface;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity
* @ORM\Table(name="user")
*/
class User implements UserInterface
{
/**
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
* @ORM\Column(type="integer")
*/
private $id;
/** …
Run Code Online (Sandbox Code Playgroud) 我有一个 MySQL 8.0.19 在 Docker 容器中运行并使用 InnoDB 引擎。我注意到表整数字段长度被忽略了。
无论是运行 CREATE 还是 ALTER 查询,整数数据类型都会出现此问题
CREATE TABLE `test` (
`id` int DEFAULT NULL,
`text_field` varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`decimal_field` decimal(6,2) DEFAULT NULL,
`int_field` int DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
Run Code Online (Sandbox Code Playgroud)
长度在我的 MySQL 客户端 (Navicat) 中显示为 0,但如果使用SHOW FULL COLUMNS FROM
test在控制台中检查也会发生同样的情况;
mysql> SHOW FULL COLUMNS FROM `test`;
+---------------+--------------+--------------------+------+-----+---------+-------+---------------------------------+---------+
| Field | Type | Collation | Null | Key | Default | Extra | Privileges | Comment |
+---------------+--------------+--------------------+------+-----+---------+-------+---------------------------------+---------+
| …
Run Code Online (Sandbox Code Playgroud) 本质上,页眉和页脚仅在我手动分页后显示在第一页和第一页上。
但是由于长HTML内容,页眉和页脚不会显示在任何自然延续的其他页面上。(即没有手册的地方)
<htmlpageheader name="header">Page Hader</htmlpageheader>
<htmlpagefooter name="footer"><p>Copyright <b>blablabla</b> 1999 - <?php echo date('Y') ?></p></htmlpagefooter>
Run Code Online (Sandbox Code Playgroud)
页眉+页脚将显示在此页面上
<sethtmlpageheader name="header" page="all" value="on" show-this-page="1" />
<sethtmlpagefooter name="footer" page="all" value="on" />
<p>(PDF cover)</p>
<h1>Report</h1>
Run Code Online (Sandbox Code Playgroud)
页眉+页脚将显示在第一页上,但不会显示在后续页上
<pagebreak />
<sethtmlpageheader name="header" page="all" value="on" show-this-page="1" />
<sethtmlpagefooter name="footer" page="all" value="on" />
LONG HTML CONTENT
THAT EXCEEDS PAGE SIZE
Run Code Online (Sandbox Code Playgroud) 我正在使用mPDF类生成PDF,并想知道是否以及如何确定生成mPDF的文档中最后一行文本的位置?
我需要一个HTML框来覆盖最后一行文本和文档底部边距之间的任何剩余空间.通过将html元素设置为height:100%,将元素推送到新页面并覆盖新页面的整个高度.
页面内容是根据许多因素动态生成的,因此我无法确定最后一行的垂直位置.
如果我知道最后一行的垂直位置,我可以从总页面高度中减去该值,然后通过CSS将该元素设置为具有该高度.
这可能还是有其他解决方案?
我刚刚开始学习使用yii,并且已经设法做了一些基本的东西.
假设我有两个简单的表:"用户"和"项目",其中关系是1到多(一个用户可以有很多项目)
我使用GII生成了CRUD,但是在"创建/编辑用户页面"中,这不提供下拉列表,而只提供我需要输入用户ID的文本字段.
在编辑项目时,我想有一个下拉列表,我可以在其中选择一个用户(因此该元素应该显示一个用户名列表).
我假设GII无法为此生成控制器和查看代码
这样做的最佳做法是什么?
我已按照http://www.yiiframework.com/doc/guide/1.1/en/database.arr中的说明声明了这些关系
public function relations()
{
return array(
'projects_rel'=>array(self::BELONGS_TO, 'Users', 'user_id'),
);
}
Run Code Online (Sandbox Code Playgroud)
和
public function relations()
{
return array(
'users_rel'=>array(self::HAS_MANY, 'Projects', 'project_id'),
);
}
Run Code Online (Sandbox Code Playgroud)