예제 #1
0
 public function testRegister()
 {
     $data = lego_register('field.data', 'test', ['a' => 'b']);
     $this->assertData($data);
     $data = lego_register('field.data', 'test');
     $this->assertData($data);
 }
예제 #2
0
 public function afterRegistered()
 {
     $this->response = lego_register(ResponseData::class, function () {
         $items = call_user_func_array($this->data(), [Request::get(self::KEYWORD_KEY), Request::all()]);
         return self::result($items);
     }, $this->name);
 }
예제 #3
0
 /**
  * 自动补全的结果集
  * @param callable $callable
  * @return $this
  */
 public function match($callable)
 {
     $original = $this->source()->original();
     $hash = md5(is_object($original) ? get_class($original) : gettype($original) . $this->name());
     /** @var AutoCompleteData $data */
     $data = lego_register(AutoCompleteData::class, $callable, $hash);
     $this->remote = $data->response()->url();
     return $this;
 }
예제 #4
0
 public function export($name, \Closure $onExport = null)
 {
     /** @var ResponseData $resp */
     $resp = lego_register(ResponseData::class, function () use($name, $onExport) {
         if ($onExport) {
             call_user_func($onExport, $this);
         }
         return $this->exportAsExcel($name);
     }, md5('grid export' . $name));
     $this->exports[$name] = $resp->url();
     return $this;
 }
예제 #5
0
 public function action(\Closure $action)
 {
     /** @var ResponseData $resp */
     $resp = lego_register(ResponseData::class, $action, md5('button ' . $this->text));
     return $this->url($resp->url());
 }