控制器中的 cakephp 3 url
cakephp 3 url in controller
我必须从控制器发送 url 以使用 json 查看。当我使用 $this->Html->link 或 $ 时不正常这->Url->为 link 构建。我怎样才能将 link 发送到 json..
使用Cake\View\Helper\UrlHelper;在顶部
foreach($schedules as $s) :
$start=$s->start_at;
$end=$s->finished_at;
$link= $this->Url->build([
'controller' => 'Bookings','action' => 'makebooking',
'comid' => 1,
'comslug' =>'Moe Moe',
'sevid'=>2,
'sevslug'=>'face washing',
'sid'=>$s->id,
'start'=>$start,
'end'=>$end
]);
$out[]=array(
'id'=>$s->id,
'title'=>'( '.$s->start_at.'-'.$s->finished_at.' )'.$s->name,
'url'=>$link,
'start'=>strtotime($s->start_at).'000',
'class'=>'event-important'
);
endforeach;
echo json_encode(array('success'=>1,'result'=>$out));exit;
错误:调用非对象的成员函数 build()
而我是
使用此代码在应用程序的任何位置生成 url:
use Cake\Routing\Router;
$link = Router::url([
'controller' => 'Bookings','action' => 'makebooking',
'comid' => 1,
'comslug' =>'Moe Moe',
'sevid'=>2,
'sevslug'=>'face washing',
'sid'=>$s->id,
'start'=>$start,
'end'=>$end
]);
要生成完整的 URL,请将第二个参数设为 TRUE。请参阅下面的示例:
$fullLink = Router::url([
'controller' => 'Bookings','action' => 'makebooking',
'comid' => 1,
'comslug' =>'Moe Moe',
'sevid'=>2,
'sevslug'=>'face washing',
'sid'=>$s->id,
'start'=>$start,
'end'=>$end
],TRUE);
我没有测试过上面的代码,但我相信它会起作用。如果它不起作用,请告诉我。
您还可以导入 HtmlHelper class 并在您的控制器中使用它
use Cake\View\Helper\HtmlHelper;
....
public function register() {
$html = new HtmlHelper(new \Cake\View\View());
$homeLink = $html->link('Home', ['controller' => 'Pages', 'action' => 'home', '_full' => true]);
...
}
我必须从控制器发送 url 以使用 json 查看。当我使用 $this->Html->link 或 $ 时不正常这->Url->为 link 构建。我怎样才能将 link 发送到 json..
使用Cake\View\Helper\UrlHelper;在顶部
foreach($schedules as $s) :
$start=$s->start_at;
$end=$s->finished_at;
$link= $this->Url->build([
'controller' => 'Bookings','action' => 'makebooking',
'comid' => 1,
'comslug' =>'Moe Moe',
'sevid'=>2,
'sevslug'=>'face washing',
'sid'=>$s->id,
'start'=>$start,
'end'=>$end
]);
$out[]=array(
'id'=>$s->id,
'title'=>'( '.$s->start_at.'-'.$s->finished_at.' )'.$s->name,
'url'=>$link,
'start'=>strtotime($s->start_at).'000',
'class'=>'event-important'
);
endforeach;
echo json_encode(array('success'=>1,'result'=>$out));exit;
错误:调用非对象的成员函数 build() 而我是
使用此代码在应用程序的任何位置生成 url:
use Cake\Routing\Router;
$link = Router::url([
'controller' => 'Bookings','action' => 'makebooking',
'comid' => 1,
'comslug' =>'Moe Moe',
'sevid'=>2,
'sevslug'=>'face washing',
'sid'=>$s->id,
'start'=>$start,
'end'=>$end
]);
要生成完整的 URL,请将第二个参数设为 TRUE。请参阅下面的示例:
$fullLink = Router::url([
'controller' => 'Bookings','action' => 'makebooking',
'comid' => 1,
'comslug' =>'Moe Moe',
'sevid'=>2,
'sevslug'=>'face washing',
'sid'=>$s->id,
'start'=>$start,
'end'=>$end
],TRUE);
我没有测试过上面的代码,但我相信它会起作用。如果它不起作用,请告诉我。
您还可以导入 HtmlHelper class 并在您的控制器中使用它
use Cake\View\Helper\HtmlHelper;
....
public function register() {
$html = new HtmlHelper(new \Cake\View\View());
$homeLink = $html->link('Home', ['controller' => 'Pages', 'action' => 'home', '_full' => true]);
...
}