小编R. *_*sen的帖子

Laravel Eloquent嵌套关系仅在第一个元素上返回数据

介绍

我正在努力获取所有相关元素的数据.我使用Laravel作为REST后端服务,将Json暴露给前端javascript应用程序.

数据结构

考虑我有以下表格:

+----------------+ +----------------+ +-------------+
|topics          | |posts           | |users        |
+----------------+ +----------------+ +-------------+
|id: int         | |id: int         | |id: int      |
|title: varchar  | |content: varchar| |name: varchar|
|content: varchar| |user_id: int    | +-------------+
|user_id: int    | |topic_id: int   |
+----------------+ +----------------+ 
Run Code Online (Sandbox Code Playgroud)

一个主题有0到多个帖子,它有一个作者(用户)

帖子有一位作者(用户)

UML:http://i58.servimg.com/u/f58/11/26/57/95/intrep10.png

Laravel模型

class User extends Eloquent {
    protected $table = 'users';

    public function topics() {
        reutrn $this->hasMany('Topic');
    }

    public function posts() {
        reutrn $this->hasMany('Post');
    }
}

class Topic extends …
Run Code Online (Sandbox Code Playgroud)

php entity-relationship eager-loading laravel eloquent

12
推荐指数
1
解决办法
6345
查看次数

puppeteer:单击 shadowroot 中的按钮

我在测试上下文中对 shadowroot 中的元素执行操作时遇到困难。假设我有一个 Web 组件<my-component />,它包含一个按钮<input id="my-button" type="submit" />

从 chrome 控制台,我可以执行以下操作:

document.getElementsByTagName('my-component')[0].shadowRoot.querySelector('#my-button').click()
Run Code Online (Sandbox Code Playgroud)

我正在努力与 puppeteer 做同样的事情。

  it('should click the button', async () => {
    await page.goto(`https://localhost:${port}`, {
      waitUntil: ['networkidle0', 'load'],
    });

    await page.$eval('my-component', (el: Element) => {
      el.shadowRoot.querySelector('#my-button').click();
    });
  });
Run Code Online (Sandbox Code Playgroud)

单击该按钮应该会向我的服务器发出一个 http 请求,该请求会检索一些数据,然后我想在 dom 中对其进行断言。请求永远不会触发。建议?

web-component typescript jestjs web-component-tester puppeteer

5
推荐指数
2
解决办法
441
查看次数

编译和链接C程序时make ignores -std = c99标志

我试图让我的makefile编译一个需要-std=c99运行的文件.在这种情况下,它通过"for-loop"获得.

这是我的代码,(在"$(CC)"之前使用了"tab"):

CC = gcc
CFLAGS = -c -std=c99

...

Download.o : Download.c
    $(CC) $(CFLAGS) Download.c
Run Code Online (Sandbox Code Playgroud)

Download.c包含用于从Web下载元素的方法

错误信息

$ make
gcc -c -std=c99 Download.c
gcc Download.c -o Program
Download.c: In function ‘downloadImageparts’:
Download.c:11:2: error: ‘for’ loop initial declarations are only allowed in C99 mode
Download.c:11:2: note: use option -std=c99 or -std=gnu99 to compile your code
Download.c:13:3: error: ‘for’ loop initial declarations are only allowed in C99 mode
make: *** [comp] Error 1
Run Code Online (Sandbox Code Playgroud)

Attemt调试

如果我gcc -c -std=c99 Download.c …

c makefile compilation

4
推荐指数
1
解决办法
6530
查看次数

如何获取:React中渲染后的组件宽度

我正在尝试创建一个通用组件,可以在其他应用程序中重用。我需要知道渲染后组件的宽度,以便可以修改组件的内容。

我一直在尝试使用不同的生命周期来做出反应而没有成功。

componentDidUpdate() {
  console.log('width', this.element.offsetWidth);
}

render() {
  return (
    <div ref={(element) => {this.element = element }} />
  );
}
Run Code Online (Sandbox Code Playgroud)

尝试此操作时,我得到的是屏幕的宽度,但是如果更改窗口的大小,则会得到该组件的宽度。查看Chrome日志:

Chrome日志

ComponentDidMount在渲染之前执行,因此this.elementundefined

我也尝试过使用npm中的其他库来解决这个问题。

更多信息:组件必须在Bootstrap列中以不同的宽度工作。

render() {
  <Row>
    <Col sm={3} />
      <MyComponent />
    </Col>
    <Col sm={9} />
      <MyComponent />
    </Col>
  <Row>
}
Run Code Online (Sandbox Code Playgroud)

澄清,我不想调整窗口大小,对于不明确,我深表歉意。我提到调整大小的唯一原因是,当创建DOM并调整大小时,我在中获得了正确的值offsetWidth。我正在寻找一种无需调整大小即可获得正确值的解决方案。后期渲染函数调用,侦听器,一些不可思议的魔术或其他解决方案。我的问题是我对虚拟DOM和实际DOM缺乏了解。

javascript dom reactjs react-bootstrap

4
推荐指数
1
解决办法
2万
查看次数

JPA 从实体顺序中按列表元素属性选择 List&lt;Object&gt;

我有一个自我引用的数据模型。我正在尝试使用 JPA(休眠)获取按属性排序的子项列表。但是我在使用 JPQL 时遇到了问题。你对我如何解决这个问题有什么建议吗?

实体

@Entity
public class Foo {
    private String bar;
    private List<Foo> elements;
} 
Run Code Online (Sandbox Code Playgroud)

JPQL

演示 JPQL 给你一个我想要做什么的提示

String jpql = "SELECT f.elements " +
              "FROM Foo f " +
              "Order By f.elements.bar";
Run Code Online (Sandbox Code Playgroud)

java hibernate jpa jpql

1
推荐指数
1
解决办法
2530
查看次数