我创建了一个User模型和UserController
和我的模型 User.php是
<?php
namespace App;
use Illuminate\Notifications\Notifiable;
use Aws\DynamoDb\DynamoDbClient;
class User extends \Aws\DynamoDb\DynamoDbClient
{
protected $table = 'users';
protected $fillable = array('email');
protected $primaryKey = 'user_id';
}
Run Code Online (Sandbox Code Playgroud)
当我在UserController中创建一个对象时
public function postSignUp(Request $request)
{
$user = new User();
Run Code Online (Sandbox Code Playgroud)
它说$ user = new User();(line30)有错误
传递给Aws\AwsClient :: __ construct()的参数1必须是类型数组,没有给定,在第30行调用C:....\laravel\app\Http\Controllers\UserController.php并定义
谢谢!!
Symfony3表单:我已设法构建并呈现如下所示的表单:
<form action="/member/john/actions" method="post" name="form">
<input type="submit" value="Block John" name="block">
<input type="submit" value="Remove from my friends" name="remove">
<input type="hidden" value="LeiajURspTa9c8JEUYtvepki0b_CdL9dMWqEZxOYvfk" name="form[_token]" id="form__token">
</form>
Run Code Online (Sandbox Code Playgroud)
单击按钮"Block John"或时"Remove from my friends",控制器将其路由到所需位置(member_friend_actions),并且能够在死亡之前显示调试转储值和"Submitted!"文本.
我的路由器"member_friend_actions"的控制器设置如下:
/**
* A common post location to catch all operations like add/remove/cancel/block friends
*
* @Route("/{username}/actions", name="member_friend_actions")
* @Method("POST")
*/
public function allActionsFriendAction(Request $request, User $friend)
{
$form = $this->createAllActionsFriendForm($friend);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
//$clicked = $form->getData();
$clicked …Run Code Online (Sandbox Code Playgroud) 我有一个基本的Rest Controller,它将json中的模型列表返回给客户端:
@RestController
public class DataControllerREST {
@Autowired
private DataService dataService;
@GetMapping("/data")
public List<Data> getData() {
return dataService.list();
}
}
Run Code Online (Sandbox Code Playgroud)
以这种格式返回数据:
[
{
"id": 1,
"name": "data 1",
"description": "description 1",
"active": true,
"img": "path/to/img"
},
// etc ...
]
Run Code Online (Sandbox Code Playgroud)
这非常适合开始,但我想要返回这种格式的数据:
[
"success": true,
"count": 12,
"data": [
{
"id": 1,
"name": "data 1",
"description": "description 1",
"active": true,
"img": "path/to/img"
},
{
"id": 2,
"name": "data 2",
"description": "description 2",
"active": true,
"img": "path/to/img"
},
]
// etc ... …Run Code Online (Sandbox Code Playgroud) 我是Laravel的新手,并试图学习形式.目前我正在尝试上传文件,我的创建页面如下所示:
<html>
<head>
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<!-- jQuery library -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<!-- Latest compiled JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
</head>
<body>
{!! Form::open(['action' => 'MovieController@create', 'enctype' => 'multipart/form-data']) !!}
<div class="form-group">
{{Form::label('name', 'Name')}}
<br>
{{Form::text('name')}}
</div>
<div class="form-group">
{{Form::label('description', 'Description')}}
<br>
{{Form::textarea('description')}}
</div>
<div class="form-group">
{{Form::label('release_date', 'Release Date')}}
<br>
{Form::date('release_date')}}
</div>
<div class="form-group">
{{Form::label('country', 'Country')}}
<br>
{{Form::text('country')}}
</div>
<div class="form-group">
{{Form::label('poster_name', 'Poster Image')}}
{{Form::file('poster_name')}}
</div>
<div class="form-group">
{{Form::label('file_name', 'Movie File')}}
{{Form::file('file_name')}}
</div>
{{Form::submit('Submit',['class' …Run Code Online (Sandbox Code Playgroud) 今天我尝试使用一个很好的回调:after_commit在对象写入数据库时触发,但是,我收到了来自Rails的错误消息:
ActionController::RoutingError (undefined method `after_commit' for ImagesController:Class
Did you mean? after_action):
Run Code Online (Sandbox Code Playgroud)
嗯,这很令人尴尬!似乎这个回调被弃用了!通过搜索,我尝试使用:after_create_commit,它给了我同样的错误.
第三步是尝试:after_action.这里提出了一个问题: 如何使其工作方式与:after_commit?
我已经尝试过apidock.com - 它真的很小!我也尝试过api.rubyonrails.org - 它是关于块的,但我不是一个了解它的红宝石忍者.所以我真的很感激你是否可以在它上面洒一些光!
ImagesController:
class ImagesController < ApplicationController
after_create_commit :take_image_to_album
def take_image_to_album
if check_album
add_inner_to_album(@image)
end
end
def create
@image = Image.create(image_params.merge(:user_id => current_user.id)
respond_to do |format|
unless @image.save
format.html { render :show, notice: "Error!" }
format.json { render json: @image.errors, status: :unprocessable_entity }
else
format.html
format.json { render :show, status: :ok, location: @image }
end
end
end
...
def add_inner_to_album(image)
contents …Run Code Online (Sandbox Code Playgroud) 如何将我的html表单更改为laravel集体表单
<select style="width:50%;margin-top: 10px;" name="idw">
<option value="0" disabled="true" selected="true">choose</option>
@foreach($warehouse as $w)
<option value="{{$w->id}}" name="idw" id="idw">{{$w->name}}</option>
@endforeach
</select>
Run Code Online (Sandbox Code Playgroud)
以我的集体形式
{!! Form::select('type',
['Task' => $w->id =>w-> $name ],
null,
['class' => 'form-control chosen-type', 'placeholder' => 'Please Choose']
)!!}
Run Code Online (Sandbox Code Playgroud)
我之前使用过集体形式
在我的Symfony 4应用程序中,我需要有一个多个控制器,每个控制器用于在不同的前缀中挂载/分组各种API端点.
每个控制器都需要先进行初始化,然后在API客户端的类属性中设置并设置凭据.为了避免代码重复所有这些,我想创建一个BaseController,以便其他人可以扩展并直接访问或拥有他需要的所有客户端属性.
基础控制器:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Vendor\ApiClient;
class BaseApiController extends Controller
{
/**
* @var ApiClient
*/
protected $apiClient;
public function __construct( array $apiClientCredentials, ApiClient $apiClient )
{
$this->apiClient = $apiClient;
$this->apiClient->credentials($apiClientCredentials['id'], $apiClientCredentials['main_password']);
}
}
Run Code Online (Sandbox Code Playgroud)
我希望能够调用/使用API属性的众多类似控制器之一:
<?php
namespace App\Controller;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\HttpFoundation\JsonResponse;
/**
* Account endpoints
* @Route("/account")
*/
class AccountApiController extends BaseApiController
{
/**
* Get the balance.
* @Route("/balance", name="balance")
*/
public function balance()
{
return new JsonResponse($this->apiClient->getBalance());
}
}
Run Code Online (Sandbox Code Playgroud)
这就是我所拥有的,但仍然没有按预期工作,想知道将这种设置放在一起的最佳做法是什么?
编辑:这是我收到的错误消息.
Cannot …Run Code Online (Sandbox Code Playgroud) 我的ListProductsController变量中有$ parentId。我想获取$ parentId值并在我的SearchProductType中使用它:
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('price',EntityType::class,[
'class'=>Product::class,
'choice_label'=>'price',
'choice_value'=>'price',
'placeholder'=>'Default',
'query_builder' => function (EntityRepository $er){
return $er->createQueryBuilder('product')
->innerJoin('product.category','c')
->addSelect('c')
->innerJoin('product.manorwomen','m')
->addSelect('m')
->where('c.parent_id=1')
},
'expanded'=>false,
'multiple'=>false
])
->add('submit',SubmitType::class)
;
}
Run Code Online (Sandbox Code Playgroud)
c.parent_id必须等于控制器中的$ parentId
->where('c.parent_id=$parentId')
Run Code Online (Sandbox Code Playgroud)
怎么做?
我在Controller中创建了一个与Entity一起使用的函数Members.我现在要做的是使功能灵活,这样我就可以将它用于我所有其他实体.因此,实体的名称应该取决于slug.所以在这种情况下slug = members:
/**
* @Route("/pages/{slug}/forms", name="forms", methods={"POST", "GET"})
*/
public function form($slug, Request $request){
$item = new Members();
$item= $this->getDoctrine()->getRepository(Members::class)->find($id);
}
Run Code Online (Sandbox Code Playgroud)
所以我要做的是用slug替换实体名称:
/**
* @Route("/pages/{slug}/forms", name="forms", methods={"POST", "GET"})
*/
public function form($slug, Request $request){
$item = new $slug();
$item= $this->getDoctrine()->getRepository($slug::class)->find($id);
}
Run Code Online (Sandbox Code Playgroud)
但是我收到一条错误消息:
尝试从全局命名空间加载类"成员".你忘记了"使用"声明吗?
这是否与slug的大写/小写有关?
我想获得1-3的数组值,但包括'.' 每一次分裂.示例有一个text ="no.this.is.just.example"我想只取0-2索引,所以$ merge将是"no.this.is"
我试过了
$cut = 3;
$text = explode('.',"no.this.is.just.example");
for($i=0; $i<$cut;$i++){
if($cut-1==$i){
$merge .= $text[$i];
}
else{
$merge .= $text[$i].'.';
}
}
Run Code Online (Sandbox Code Playgroud)
有最简单的方法吗?